From b0ccfc8ce8b6b9604724d2b4c94ac871f33e02e7 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 22 Jun 2022 15:47:51 -0400 Subject: [PATCH 01/27] fix to allow unTag in sweep --- data/lexicon/switches/person-verb.js | 1 + src/1-one/sweep/methods/tagger/index.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/lexicon/switches/person-verb.js b/data/lexicon/switches/person-verb.js index 4337439f7..7bd32b2f9 100644 --- a/data/lexicon/switches/person-verb.js +++ b/data/lexicon/switches/person-verb.js @@ -15,6 +15,7 @@ export default [ 'chuck', 'mack', 'grant',//'sung' + 'chase' // 'will', // may ] diff --git a/src/1-one/sweep/methods/tagger/index.js b/src/1-one/sweep/methods/tagger/index.js index 16cc548de..394a6ee2e 100644 --- a/src/1-one/sweep/methods/tagger/index.js +++ b/src/1-one/sweep/methods/tagger/index.js @@ -12,7 +12,7 @@ const tagger = function (list, document, world) { console.log(`\n\n \x1b[32m→ ${list.length} post-tagger:\x1b[0m`) //eslint-disable-line } return list.map(todo => { - if (!todo.tag && !todo.chunk) { + if (!todo.tag && !todo.chunk && !todo.unTag) { return } let reason = todo.reason || todo.match From fdbea98f2dead67cfe2245ba94ba25dcc932559e Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 27 Jun 2022 13:52:08 -0400 Subject: [PATCH 02/27] number units as contractions --- builds/compromise.js | 2 +- builds/one/compromise-one.cjs | 2 +- builds/one/compromise-one.mjs | 2 +- builds/three/compromise-three.cjs | 2 +- builds/three/compromise-three.mjs | 2 +- builds/two/compromise-two.cjs | 2 +- builds/two/compromise-two.mjs | 2 +- changelog.md | 2 + data/lexicon/numbers/units.js | 15 -- issues.js | 222 ++++++++++++++++++ scratch.js | 219 +---------------- .../compute/contractions/index.js | 9 + .../compute/contractions/number-unit.js | 15 ++ src/1-one/contraction-one/model/index.js | 4 +- src/1-one/contraction-one/model/units.js | 79 +++++++ src/1-one/output/api/out.js | 3 + .../methods/03-whitespace/tokenize.js | 2 +- src/1-one/tokenize/model/unicode.js | 2 +- src/2-two/preTagger/model/lexicon/misc.js | 17 ++ src/3-three/numbers/numbers/format/suffix.js | 6 +- tests/three/numbers/misc.test.js | 16 +- tests/three/numbers/prefix.test.js | 6 +- tests/three/numbers/units.test.js | 44 +++- 23 files changed, 414 insertions(+), 261 deletions(-) create mode 100644 issues.js create mode 100644 src/1-one/contraction-one/compute/contractions/number-unit.js create mode 100644 src/1-one/contraction-one/model/units.js diff --git a/builds/compromise.js b/builds/compromise.js index 6e2fa9aac..17a275963 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),k(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e},Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>vt(e,","),hasPeriod:e=>!0===vt(e,".")&&!1===vt(e,"..."),hasExclamation:e=>vt(e,"!"),hasQuestionMark:e=>vt(e,"?")||vt(e,"¿"),hasEllipses:e=>vt(e,"..")||vt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>vt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=r-e.t),e.t=r,!0)};const Nt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=xt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==jt(e,a)){if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Gt(a))return null;if(!0!==e.optional)return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Tt(a))return null}else if(!It(a))return null}else if(!Et(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=cn.blue(" │ ")+cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${cn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var gn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},jn=function(e,t){let n=e.concat(t),r=kn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},En=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},In=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=Nn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.not=function(e){e=Nn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=jn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:An,api:function(e){Object.assign(e.prototype,Tn)}};const Dn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Dn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Dn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Vn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Bn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},zn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=On(a,t.hooks);return o=Vn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Bn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Fn=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,r){let a=t.split(Fn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nMn(e,t,n,r))};var Ln=Mn,Wn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Jn({id:e})),t}return[Jn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),_n=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Jn({});return e.forEach(e=>{if((e=Jn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Jn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Rn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:Zn,txt:Zn,array:Yn,flat:Yn},er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},tr=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},nr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!nr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Jn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Jn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){tr(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return tr(this.json),er(this.json,e)}debug(){return tr(this.json),er(this.json,"debug"),this}}const rr=function(e){let t=_n(e);return new g$1(t)};rr.prototype.plugin=function(e){e(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(e){if(ar.hasOwnProperty(e.id))return ar[e.id];if(ar.hasOwnProperty(e.is))return ar[e.is];let t=e._cache.parents.find(e=>ar[e]);return ar[t]};var ir=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:or(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sr=function(e){return e?"string"==typeof e?[e]:e:[]};var lr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sr(e[t].children),e[t].not=sr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ur={one:{setTag:Ln,unTag:Wn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=lr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return rr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ir(n)}}};const cr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),cr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return cr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},dr=function(e){Object.assign(e.prototype,hr)},pr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const mr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(mr.has(e)||!t.hasOwnProperty(n))return 1;if(mr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:ur,api:dr,lib:pr};const fr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,br=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),k(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e},Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>vt(e,","),hasPeriod:e=>!0===vt(e,".")&&!1===vt(e,"..."),hasExclamation:e=>vt(e,"!"),hasQuestionMark:e=>vt(e,"?")||vt(e,"¿"),hasEllipses:e=>vt(e,"..")||vt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>vt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=r-e.t),e.t=r,!0)};const Nt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=xt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==jt(e,a)){if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Gt(a))return null;if(!0!==e.optional)return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Tt(a))return null}else if(!It(a))return null}else if(!Et(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=cn.blue(" │ ")+cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${cn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var gn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},jn=function(e,t){let n=e.concat(t),r=kn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},En=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},In=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=Nn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.not=function(e){e=Nn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=jn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:An,api:function(e){Object.assign(e.prototype,Tn)}};const Dn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Dn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Dn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Vn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Bn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},zn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=On(a,t.hooks);return o=Vn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Bn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,a)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Fn=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,r){let a=t.split(Fn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nMn(e,t,n,r))};var Ln=Mn,Wn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Jn({id:e})),t}return[Jn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),_n=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Jn({});return e.forEach(e=>{if((e=Jn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Jn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Rn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:Zn,txt:Zn,array:Yn,flat:Yn},er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},tr=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},nr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!nr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Jn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Jn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){tr(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return tr(this.json),er(this.json,e)}debug(){return tr(this.json),er(this.json,"debug"),this}}const rr=function(e){let t=_n(e);return new g$1(t)};rr.prototype.plugin=function(e){e(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(e){if(ar.hasOwnProperty(e.id))return ar[e.id];if(ar.hasOwnProperty(e.is))return ar[e.is];let t=e._cache.parents.find(e=>ar[e]);return ar[t]};var ir=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:or(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sr=function(e){return e?"string"==typeof e?[e]:e:[]};var lr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sr(e[t].children),e[t].not=sr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ur={one:{setTag:Ln,unTag:Wn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=lr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return rr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ir(n)}}};const cr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),cr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return cr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},dr=function(e){Object.assign(e.prototype,hr)},pr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const mr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(mr.has(e)||!t.hasOwnProperty(n))return 1;if(mr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:ur,api:dr,lib:pr};const fr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,br=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var vr=function(e){let t=[],n=e.split(br);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,$r=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Sr=/^[a-z]\.([a-z]\.)+/i,Hr=/^[-+.][0-9]/,Mr=/^'[0-9]{2}/;var Lr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(zr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Hr.test(e)?"'"===n&&Mr.test(e)?(n="",t):"":(n="",t)))).replace($r,a=>(r=a,Fr.test(a)&&/[sn]['’]$/.test(t)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Sr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Wr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Jr=/([A-Z]\.)+[A-Z]?,?$/,qr=/^[A-Z]\.,?$/,Kr=/[A-Z]{2,}('s|,)?$/,Rr=/([a-z]\.)+[a-z]\.?$/;var Ur=function(e){return function(e){return!0===Jr.test(e)||!0===Rr.test(e)||!0===qr.test(e)||!0===Kr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wr(r),r=n(r,t),r=Ur(r),e.normal=r},_r={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Er,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Vr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Dr(n),n=Tr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Lr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Qr(e,t)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Yr={},Xr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Yr[t]=!0,Xr[t]="Abbreviation",void 0!==e[1]&&(Xr[t]=[Xr[t],e[1]])})});var ea=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ta={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},na={};Object.keys(ta).forEach((function(e){ta[e].split("").forEach((function(t){na[t]=e}))}));const ra=/\//,aa=/[a-z]\.[a-z]/i,oa=/[0-9]/;var ia=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ra.test(n)&&!aa.test(n)&&!oa.test(n)){let t=n.split(ra);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const sa=/^\p{Letter}+-\p{Letter}+$/u;var la=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),sa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ua=function(e){let t=0,n=0,r=e.document;for(let e=0;eca(e,ia),machine:e=>ca(e,la),normal:e=>ca(e,Qr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ma={safe:!0,min:3};var ga={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=da},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ma,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=pa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(yn),m.extend(St),m.extend(Gn),m.extend(gr),m.plugin(be),m.extend(ha),m.plugin(f),m.extend(Te),m.extend(ga),m.extend(Pe),m.extend($n);var fa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ba={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const va=36,ya="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wa=ya.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ka=function(e){if(void 0!==wa[e])return wa[e];let t=0,n=1,r=va,a=1;for(;n=0;n--,a*=va){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Pa=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=ja(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xa(ba[e]);Ta.test(e)?Object.keys(t).forEach(t=>{if(Da[t]=e,"Noun|Verb"===e){let e=Ia(t,Ca);Da[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ga[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ga[e]="Emoticon"),delete Ga[""],delete Ga.null,delete Ga[" "];const Oa="Adjective";var Va={beforeTags:{Determiner:Oa,Possessive:Oa},afterTags:{Adjective:Oa},beforeWords:{seem:Oa,seemed:Oa,seems:Oa,feel:Oa,feels:Oa,felt:Oa,appear:Oa,appears:Oa,appeared:Oa,also:Oa,over:Oa,under:Oa,too:Oa,it:Oa,but:Oa,still:Oa,really:Oa,quite:Oa,well:Oa,very:Oa,deeply:Oa,profoundly:Oa,extremely:Oa,so:Oa,badly:Oa,mostly:Oa,totally:Oa,awfully:Oa,rather:Oa,nothing:Oa,something:Oa,anything:Oa},afterWords:{too:Oa,also:Oa,or:Oa}};const Ba="Gerund";var za={beforeTags:{Adverb:Ba,Preposition:Ba,Conjunction:Ba},afterTags:{Adverb:Ba,Possessive:Ba,Person:Ba,Pronoun:Ba,Determiner:Ba,Copula:Ba,Preposition:Ba,Conjunction:Ba,Comparative:Ba},beforeWords:{been:Ba,keep:Ba,continue:Ba,stop:Ba,am:Ba,be:Ba,me:Ba,began:Ba,start:Ba,starts:Ba,started:Ba,stops:Ba,stopped:Ba,help:Ba,helps:Ba,avoid:Ba,avoids:Ba,love:Ba,loves:Ba,loved:Ba,hate:Ba,hates:Ba,hated:Ba},afterWords:{you:Ba,me:Ba,her:Ba,him:Ba,them:Ba,their:Ba,it:Ba,this:Ba,there:Ba,on:Ba,about:Ba,for:Ba}},$a={beforeTags:Object.assign({},Va.beforeTags,za.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Va.afterTags,za.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Va.beforeWords,za.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Va.afterWords,za.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fa="Singular";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa,Acronym:Fa,Noun:Fa,Adjective:Fa,PresentTense:Fa,Gerund:Fa,PastTense:Fa,Infinitive:Fa,Date:Fa},afterTags:{Value:Fa,Modal:Fa,Copula:Fa,PresentTense:Fa,PastTense:Fa,Demonym:Fa},beforeWords:{the:Fa,with:Fa,without:Fa,of:Fa,for:Fa,any:Fa,all:Fa,on:Fa,cut:Fa,cuts:Fa,save:Fa,saved:Fa,saves:Fa,make:Fa,makes:Fa,made:Fa,minus:Fa,plus:Fa,than:Fa,another:Fa,versus:Fa,neither:Fa,favorite:Fa,best:Fa,daily:Fa,weekly:Fa,linear:Fa,binary:Fa,mobile:Fa,lexical:Fa,technical:Fa,computer:Fa,scientific:Fa,formal:Fa},afterWords:{of:Fa,system:Fa,aid:Fa,method:Fa,utility:Fa,tool:Fa,reform:Fa,therapy:Fa,philosophy:Fa,room:Fa,authority:Fa,says:Fa,said:Fa,wants:Fa,wanted:Fa}};const Ha={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ma={beforeTags:Object.assign({},Va.beforeTags,Sa.beforeTags,Ha.beforeTags),afterTags:Object.assign({},Va.afterTags,Sa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Sa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Sa.afterWords)};const La={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Wa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},qa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ka={beforeTags:Object.assign({},Va.beforeTags,La),afterTags:Object.assign({},Va.afterTags,Wa),beforeWords:Object.assign({},Va.beforeWords,Ja),afterWords:Object.assign({},Va.afterWords,qa)};const Ra="Infinitive";var Ua={beforeTags:{Modal:Ra,Adverb:Ra,Negative:Ra,Plural:Ra},afterTags:{Determiner:Ra,Adverb:Ra,Possessive:Ra,Preposition:Ra},beforeWords:{i:Ra,we:Ra,you:Ra,they:Ra,to:Ra,please:Ra,will:Ra,have:Ra,had:Ra,would:Ra,could:Ra,should:Ra,do:Ra,did:Ra,does:Ra,can:Ra,must:Ra,us:Ra,me:Ra,he:Ra,she:Ra,it:Ra,being:Ra},afterWords:{the:Ra,me:Ra,you:Ra,him:Ra,her:Ra,them:Ra,it:Ra,a:Ra,an:Ra,up:Ra,down:Ra,by:Ra,out:Ra,off:Ra,under:Ra,when:Ra,all:Ra,to:Ra,because:Ra,although:Ra,before:Ra,how:Ra,otherwise:Ra,together:Ra,though:Ra,yet:Ra}};const Qa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var _a={beforeTags:Object.assign({},Va.beforeTags,Ua.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Va.afterTags,Ua.afterTags,Qa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Ua.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Ua.afterWords,{to:void 0})};const Za={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ya={},Xa={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},eo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var to={beforeTags:Object.assign({},za.beforeTags,Sa.beforeTags,Za),afterTags:Object.assign({},za.afterTags,Sa.afterTags,Ya),beforeWords:Object.assign({},za.beforeWords,Sa.beforeWords,Xa),afterWords:Object.assign({},za.afterWords,Sa.afterWords,eo)},no={beforeTags:Object.assign({},Ua.beforeTags,Sa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ua.afterTags,Sa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ua.beforeWords,Sa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ua.afterWords,Sa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ro="Person";var ao={beforeTags:{Honorific:ro,Person:ro,Preposition:ro},afterTags:{Person:ro,ProperNoun:ro,Verb:ro},ownTags:{ProperNoun:ro},beforeWords:{hi:ro,hey:ro,yo:ro,dear:ro,hello:ro},afterWords:{said:ro,says:ro,told:ro,tells:ro,feels:ro,felt:ro,seems:ro,thinks:ro,thought:ro,spends:ro,spendt:ro,plays:ro,played:ro,sing:ro,sang:ro,learn:ro,learned:ro,wants:ro,wanted:ro}};const oo="Month",io={beforeTags:{Date:oo,Value:oo},afterTags:{Date:oo,Value:oo},beforeWords:{by:oo,in:oo,on:oo,during:oo,after:oo,before:oo,between:oo,until:oo,til:oo,sometime:oo,of:oo,this:oo,next:oo,last:oo,previous:oo,following:oo},afterWords:{sometime:oo,in:oo,of:oo,until:oo,the:oo}};var so={beforeTags:Object.assign({},ao.beforeTags,io.beforeTags),afterTags:Object.assign({},ao.afterTags,io.afterTags),beforeWords:Object.assign({},ao.beforeWords,io.beforeWords),afterWords:Object.assign({},ao.afterWords,io.afterWords)};const lo={Place:"Place"},uo={Place:"Place",Abbreviation:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ho={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},po={"Adj|Gerund":$a,"Adj|Noun":Ma,"Adj|Past":Ka,"Adj|Present":_a,"Noun|Verb":no,"Noun|Gerund":to,"Person|Noun":{beforeTags:Object.assign({},Sa.beforeTags,ao.beforeTags),afterTags:Object.assign({},Sa.afterTags,ao.afterTags),beforeWords:Object.assign({},Sa.beforeWords,ao.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Sa.afterWords,ao.afterWords)},"Person|Date":so,"Person|Verb":{beforeTags:Object.assign({},ao.beforeTags,Ua.beforeTags),afterTags:Object.assign({},ao.afterTags,Ua.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ua.beforeWords),afterWords:Object.assign({},ao.afterWords,Ua.afterWords)},"Person|Place":{beforeTags:Object.assign({},lo,ao.beforeTags),afterTags:Object.assign({},uo,ao.afterTags),beforeWords:Object.assign({},co,ao.beforeWords),afterWords:Object.assign({},ho,ao.afterWords)}},mo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};po["Plural|Verb"]={beforeWords:mo(po["Noun|Verb"].beforeWords,{}),afterWords:mo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:mo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:mo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var go=po;const fo="Adjective",bo="Infinitive",vo="PresentTense",yo="Singular",wo="PastTense",ko="Adverb",Po="Plural",Ao="Actor",jo="Verb",xo="Noun",Eo="LastName",No="Modal",Io="Participle";var To=[null,null,{ea:yo,ia:xo,ic:fo,ly:ko,"'n":jo,"'t":jo},{oed:wo,ued:wo,xed:wo," so":ko,"'ll":No,"'re":"Copula",azy:fo,eer:xo,end:jo,ped:wo,ffy:fo,ify:bo,ing:"Gerund",ize:bo,ibe:bo,lar:fo,mum:fo,nes:vo,nny:fo,ous:fo,que:fo,rol:yo,sis:yo,ogy:yo,oid:yo,ian:yo,zes:vo,eld:wo,ken:Io,ven:Io,ten:Io,ect:bo,ict:bo,ign:bo,ful:fo,bal:fo},{amed:wo,aped:wo,ched:wo,lked:wo,rked:wo,reed:wo,nded:wo,mned:fo,cted:wo,dged:wo,ield:yo,akis:Eo,cede:bo,chuk:Eo,czyk:Eo,ects:vo,ends:jo,enko:Eo,ette:yo,wner:yo,fies:vo,fore:ko,gate:bo,gone:fo,ices:Po,ints:Po,ruct:bo,ines:Po,ions:Po,less:fo,llen:fo,made:fo,nsen:Eo,oses:vo,ould:No,some:fo,sson:Eo,tion:yo,tage:xo,ique:yo,tive:fo,tors:xo,vice:yo,lier:yo,fier:yo,wned:wo,gent:yo,tist:yo,pist:yo,rist:yo,mist:yo,yist:yo,vist:yo,lite:yo,site:yo,rite:yo,mite:yo,bite:yo,mate:yo,date:yo,ndal:yo,vent:yo,uist:yo,gist:yo,note:yo,cide:yo,wide:fo,vide:bo,ract:bo,duce:bo,pose:bo,eive:bo,lyze:bo,lyse:bo,iant:fo,nary:fo},{elist:yo,holic:yo,phite:yo,tized:wo,urned:wo,eased:wo,ances:Po,bound:fo,ettes:Po,fully:ko,ishes:vo,ities:Po,marek:Eo,nssen:Eo,ology:xo,osome:yo,tment:yo,ports:Po,rough:fo,tches:vo,tieth:"Ordinal",tures:Po,wards:ko,where:ko,archy:xo,pathy:xo,opoly:xo,embly:xo,phate:xo,ndent:yo,scent:yo,onist:yo,anist:yo,alist:yo,olist:yo,icist:yo,ounce:bo,iable:fo,borne:fo,gnant:fo,inant:fo,igent:fo,atory:fo,rient:yo,dient:yo},{auskas:Eo,parent:yo,cedent:yo,ionary:yo,cklist:yo,keeper:Ao,logist:Ao,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const Go="Adjective",Do="Noun",Co="Verb";var Oo=[null,null,{},{neo:Do,bio:Do,"de-":Co,"re-":Co,"un-":Co},{anti:Do,auto:Do,faux:Go,hexa:Do,kilo:Do,mono:Do,nano:Do,octa:Do,poly:Do,semi:Go,tele:Do,"pro-":Go,"mis-":Co,"dis-":Co,"pre-":Go},{anglo:Do,centi:Do,ethno:Do,ferro:Do,grand:Do,hepta:Do,hydro:Do,intro:Do,macro:Do,micro:Do,milli:Do,nitro:Do,penta:Do,quasi:Go,radio:Do,tetra:Do,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:Do}];const Vo="Adjective",Bo="Infinitive",zo="PresentTense",$o="Singular",Fo="PastTense",So="Adverb",Ho="Expression",Mo="Actor",Lo="Verb",Wo="Noun",Jo="LastName";var qo={a:[[/.[aeiou]na$/,Wo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,$o,"harmonica"],[/^([hyj]a+)+$/,Ho,"haha"]],c:[[/.[^aeiou]ic$/,Vo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fo,"rammed"],[/.[aeiou][sg]hed$/,Fo,"gushed"],[/.[aeiou]red$/,Fo,"hired"],[/.[aeiou]r?ried$/,Fo,"hurried"],[/[^aeiou]ard$/,$o,"steward"],[/[aeiou][^aeiou]id$/,Vo,""],[/.[vrl]id$/,Vo,"livid"],[/..led$/,Fo,"hurled"],[/.[iao]sed$/,Fo,""],[/[aeiou]n?[cs]ed$/,Fo,""],[/[aeiou][rl]?[mnf]ed$/,Fo,""],[/[aeiou][ns]?c?ked$/,Fo,"bunked"],[/[aeiou]gned$/,Fo],[/[aeiou][nl]?ged$/,Fo],[/.[tdbwxyz]ed$/,Fo],[/[^aeiou][aeiou][tvx]ed$/,Fo],[/.[cdflmnprstv]ied$/,Fo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,Vo,"fixable"],[/.[^aeiou]eable$/,Vo,"maleable"],[/.[ts]ive$/,Vo,"festive"],[/[a-z]-like$/,Vo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vo,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Ho,"ughh"],[/^uh[ -]?oh$/,Ho,"uhoh"],[/[a-z]-ish$/,Vo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Ho,"kkkk"]],l:[[/.[gl]ial$/,Vo,"familial"],[/.[^aeiou]ful$/,Vo,"fitful"],[/.[nrtumcd]al$/,Vo,"natal"],[/.[^aeiou][ei]al$/,Vo,"familial"]],m:[[/.[^aeiou]ium$/,$o,"magnesium"],[/[^aeiou]ism$/,$o,"schism"],[/^[hu]m+$/,Ho,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vo,"republican"],[/[^aeiou]ician$/,Mo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ho,"noooo"],[/^(yo)+$/,Ho,"yoo"],[/^wo{2,}[pt]?$/,Ho,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$o],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,Mo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vo],[/[aeiou].*ist$/,Vo],[/^[a-z]et$/,Lo]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,Lo],[/.[lstrn]us$/,$o],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,$o],[/[a-z]'s$/,Wo],[/^yes+$/,Ho]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Vo],[/.[st]ty$/,Vo],[/.[tnl]ary$/,Vo],[/.[oe]ry$/,$o],[/[rdntkbhs]ly$/,So],[/.(gg|bb|zz)ly$/,Vo],[/...lly$/,So],[/.[gk]y$/,Vo],[/[bszmp]{2}y$/,Vo],[/.[ai]my$/,Vo],[/[ea]{2}zy$/,Vo],[/.[^aeiou]ity$/,$o]]};const Ko="Verb",Ro="Noun";var Uo={leftTags:[["Adjective",Ro],["Possessive",Ro],["Determiner",Ro],["Adverb",Ko],["Pronoun",Ko],["Value",Ro],["Ordinal",Ro],["Modal",Ko],["Superlative",Ro],["Demonym",Ro],["Honorific","Person"]],leftWords:[["i",Ko],["first",Ro],["it",Ko],["there",Ko],["not",Ko],["because",Ro],["if",Ro],["but",Ro],["who",Ko],["this",Ro],["his",Ro],["when",Ro],["you",Ko],["very","Adjective"],["old",Ro],["never",Ko],["before",Ro],["a","Singular"],["the",Ro],["been",Ko]],rightTags:[["Copula",Ro],["PastTense",Ro],["Conjunction",Ro],["Modal",Ro]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["only",Ko],["him",Ko],["it",Ko],["were",Ro],["took",Ro],["himself",Ko],["went",Ro],["who",Ro],["jr","Person"]]},Qo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},_o={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Zo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Yo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Xo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ei=/^.([0-9]+)/;var ti=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ei);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ei,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ri=/^([0-9]+)/,ai=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ri);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ri,"")]}(n[0],n[1])})};var oi=function(e={}){return(e=Object.assign({},e)).rules=ai(e.rules),e.rules=ni(e.rules),e.rev&&(e.rev=ai(e.rev),e.rev=ni(e.rev)),e.exceptions=ai(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ii=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const si=oi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),li=oi(Yo),ui=oi(_o),ci=oi(Zo),hi=ii(si),di=ii(li),pi=ii(ui),mi=ii(ci),gi=oi(Qo),fi=oi(Xo);var bi={fromPast:si,fromPresent:li,fromGerund:ui,fromParticiple:ci,toPast:hi,toPresent:di,toGerund:pi,toParticiple:mi,toComparative:gi,toSuperlative:fi,fromComparative:ii(gi),fromSuperlative:ii(fi)},vi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),yi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],wi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ki[t].forEach(n=>e[n]=t),e),{});var Pi=ki,Ai=function(e){let t=e.substring(e.length-3);if(!0===Pi.hasOwnProperty(t))return Pi[t];let n=e.substring(e.length-2);return!0===Pi.hasOwnProperty(n)?Pi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ji={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var xi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ai(e)),ji.hasOwnProperty(e))c=ji[e];else if("Participle"===n)c=ti(l,i);else if("PastTense"===n)c=ti(l,r);else if("PresentTense"===n)c=ti(l,a);else{if("Gerund"!==n)return e;c=ti(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ei=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ti(i,n),PresentTense:ti(i,r),Gerund:ti(i,a),FutureTense:"will "+e},u=ti(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ni=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Ii="ically",Ti=new Set(["analyt"+Ii,"chem"+Ii,"class"+Ii,"clin"+Ii,"crit"+Ii,"ecolog"+Ii,"electr"+Ii,"empir"+Ii,"frant"+Ii,"grammat"+Ii,"ident"+Ii,"ideolog"+Ii,"log"+Ii,"mag"+Ii,"mathemat"+Ii,"mechan"+Ii,"med"+Ii,"method"+Ii,"method"+Ii,"mus"+Ii,"phys"+Ii,"phys"+Ii,"polit"+Ii,"pract"+Ii,"rad"+Ii,"satir"+Ii,"statist"+Ii,"techn"+Ii,"technolog"+Ii,"theoret"+Ii,"typ"+Ii,"vert"+Ii,"whims"+Ii]),Gi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Di=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ci={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Oi=function(e){return e.endsWith("ly")?Ti.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:Ci.hasOwnProperty(e)?Ci[e]:Ni(e,Gi)||e:null};const Vi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zi=function(e){if(Bi.hasOwnProperty(e))return Bi[e];let t=Ni(e,Vi);return t||e+"ly"};const $i=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Si=new Set(["terrible","annoying"]),Hi=function(e,t){const n=t.two.models.toSuperlative;return ti(e,n)},Mi=function(e,t){const n=t.two.models.toComparative;return ti(e,n)};var Li={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Wi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Li.hasOwnProperty(i)&&Li[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ia,nounToSingular:wi,verbToInfinitive:xi,getTense:Ai,verbConjugate:Ei,adjToSuperlative:Hi,adjToComparative:Mi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ti(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ti(e,n)},advToAdjective:Oi,adjToAdverb:zi,adjToNoun:function(e){if(Fi.hasOwnProperty(e))return Fi[e];if(Si.has(e))return null;let t=Ni(e,$i);return t||e+"ness"}}}},Ji=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const qi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ki=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=qi(n,"Infinitive","PastTense"),Object.assign(s,l),l=qi(r,"Infinitive","Verb"),Object.assign(s,l),l=qi(a,"Infinitive","Gerund"),Object.assign(s,l),l=qi(o,"Adjective","Superlative"),Object.assign(s,l),l=qi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ri={two:{models:bi}};const Ui={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Qi=function(e,t){const n={model:t,methods:Wi};let{lex:r,_multi:a}=Wi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},_i=function(e,t,n){let r=Ei(e,Ri);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Zi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Ui[o],"Noun|Verb"!==o&&"Person|Verb"!==o||_i(a,r,!1),"Adj|Present"===o&&(_i(a,r,!0),function(e,t,n){let r=Hi(e,n);t[r]=t[r]||"Superlative";let a=Mi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=xi(a,Ri,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=xi(a,Ri,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Qi(n,t)};let Yi={one:{_multiCache:{},lexicon:Ga},two:{irregularPlurals:fa,models:bi,suffixPatterns:To,prefixPatterns:Oo,endsWith:qo,neighbours:Uo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Da,clues:go,uncountable:{},orgWords:vi}};Yi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Qi(e.one.lexicon,e)).one.lexicon,e),e=Zi(e.two.switches,e),e=Ki(e),e=Ji(e)}(Yi);var Xi=Yi;const es=/^(under|over|mis|re|un|dis|semi)-?/;var ts=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(es.test(a.normal)){let e=a.normal.replace(es,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ns=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const rs={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},as=new Set(["formulas","koalas","israelis","menus"]),os=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var is=function(e){if(!e||e.length<=3)return!1;if(as.has(e))return!0;let t=e[e.length-1];return rs.hasOwnProperty(t)?rs[t].find(t=>e.endsWith(t)):"s"===t&&!os.find(t=>e.endsWith(t))};const ss=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ls=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(is(e.normal)?ns(e,"Plural","3-plural-guess"):ns(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ai(e.normal);t&&ns(e,t,"3-verb-tense-guess")}}(r)};const us=/^\p{Lu}[\p{Ll}'’]/u,cs=/[0-9]/,hs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,ps=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ms={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===us.test(o)&&!1===cs.test(o)?hs.find(e=>r.tags.has(e))?null:(ls(e,t,n),r.tags.has("Noun")||r.tags.clear(),ns(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&ps.test(o)&&!ms[r.normal]?(ns(r,"RomanNumeral","2-xvii"),!0):null};const fs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var bs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fs(r.normal,n.two.suffixPatterns);if(null!==e)return ns(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fs(r.implicit,n.two.suffixPatterns),null!==e))return ns(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const vs=/['‘’‛‵′`´]/,ys=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ns(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ps=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),As=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ps.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},js=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},xs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Es=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(As(a)||As(o))return ns(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(js(a)||js(o))return ns(n,"Year","2-tagYear-close");if(xs(e[t-2])||xs(e[t+2]))return ns(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ns(n,"Year","2-tagYear-noun")}}}return null};const Ns=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,Ts=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,Cs={I:!0,A:!0};var Os=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Is.test(n)||n.length>5||Cs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ts.test(n)&&!0!==Ds.test(n)&&!0!==Ns.test(n)&&!0!==Gs.test(n))}(r,n)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cs.hasOwnProperty(r.text)&&Ns.test(r.text)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ns(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Is.test(r.text)&&r.text.length<=6?(ns(r,"Acronym","3-titlecase-acronym"),!0):null};const Vs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var zs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vs(e[t-1],a),l=l||Vs(e[t+1],o),l=l||Bs(e[t-1],r),l=l||Bs(e[t+1],i),l)return ns(s,l,"3-[neighbour]"),ls(e,t,n),e[t].confidence=.2,!0}return null};const $s=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Fs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$s(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$s(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ss=function(e,t,n){0===e[t].tags.size&&(ns(e[t],"Noun","3-[fallback]"),ls(e,t,n),e[t].confidence=.1)};const Hs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ms=(e,t,n)=>0!==t||e[1]?null:n;var Ls={"Adj|Gerund":(e,t)=>Hs(e,t),"Adj|Noun":(e,t)=>Hs(e,t),"Adj|Past":(e,t)=>Hs(e,t),"Adj|Present":(e,t)=>Hs(e,t),"Noun|Gerund":(e,t)=>Hs(e,t),"Noun|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hs(e,t),"Person|Verb":(e,t)=>0!==t&&Hs(e,t)};const Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(under|over|mis|re|un|dis|semi)-?/,qs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ws.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ks=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ws.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Rs={tagSwitch:ts,checkSuffix:bs,checkRegex:ws,checkCase:gs,checkPrefix:ks,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ns(o,"Verb","3-[prefix]"),ns(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ns(o,"Adjective","3-[prefix]"),ns(o,"Prefix","3-[prefix]")))},checkYear:Es},Us={checkAcronym:Os,neighbours:zs,orgWords:Fs,nounFallback:Ss,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Js.test(l)&&!o[l]&&(l=l.replace(Js,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=qs(e[t+1],n.afterWords);return o=o||qs(e[t-1],n.beforeWords),o=o||Ks(e[t-1],n.beforeTags,a),o=o||Ks(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ls[o]&&(u=Ls[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Qs=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},Ys={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Xs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const dl=/'/;var pl=function(e,t){let n=e[t].normal.split(dl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},ml=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const gl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},fl={in:!0,by:!0,for:!0};var bl=(e,t)=>{let n=e[t];if(gl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===fl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const vl=/'/,yl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},wl={d:(e,t)=>pl(e,t),t:(e,t)=>ml(e,t),s:(e,t,n)=>bl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):hl(e,t)},kl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Pl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===vl.test(r[o].normal)&&([,i]=r[o].normal.split(vl));let s=null;wl.hasOwnProperty(i)&&(s=wl[i](r,o,t)),s&&(s=kl(s,e),ul(n,[a,o],s),yl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ll.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=sl},hooks:["contractionTwo"]};const Al="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",jl=["i","we","they"];let xl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Al+" #Person",tag:"Person",reason:"randy-smith"},{match:Al+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Al}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:jl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:jl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:jl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),El=null;var Nl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;El=El||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(El),e.uncache(),e}},model:{two:{matches:xl}},hooks:["postTagger"]},Il=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Tl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Il(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Gl={api:function(e){e.prototype.swap=Tl}};m.plugin(al),m.plugin(Pl),m.plugin(Nl),m.plugin(Gl);var Dl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Cl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ol={this:"Noun",then:"Pivot"};var Vl=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},Ll={compute:{chunks:function(e){const{document:t,world:n}=e;Vl(t),Bl(t),Fl(e,t,n),Hl(t),Ml(t)}},api:function(e){e.prototype.chunks=Cl,e.prototype.clauses=Dl},hooks:["chunks"]};const Wl=/'s$/;var Jl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ql=/\(/,Kl=/\)/,Rl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ql,"");let t=e[e.length-1];t.post=t.post.replace(Kl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Ql={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},_l=RegExp("("+Object.keys(Ql).join("|")+")"),Zl=RegExp("("+Object.values(Ql).join("|")+")"),Yl=function(e,t){const n=e[t].pre.match(_l)[0]||"";if(!n||!Ql[n])return null;const r=Ql[n];for(;t{e[0].pre=e[0].pre.replace(_l,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const eu=/\./g;var tu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},nu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const ru=(e,t)=>"number"==typeof t?e.eq(t):e,au=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var ou=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=au(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ru(t,e),new Adjectives(t.document,t.pointer)}};const iu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},su=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let lu=[["emojis","emoji"],["atmentions","atMentions"]];var uu=function(e){su.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=iu,lu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},cu={api:function(e){uu(e),Jl(e),Ul(e),Xl(e),ou(e),nu(e),tu(e)}};const hu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var du={case:e=>{hu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;hu(e,e=>e.text=n(e.text,t))},whitespace:e=>{hu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{hu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),mu="unicode|punctuation|whitespace|acronyms",gu="|case|contractions|parentheses|quotations|emoji|honorifics",fu={light:pu(mu),medium:pu(mu+gu),heavy:pu(mu+gu+"|possessives|adverbs|nouns|verbs")};var bu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=fu[e]),Object.keys(e).forEach(t=>{du.hasOwnProperty(t)&&du[t](this,e[t])}),this}}},vu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const yu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var wu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Pu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:ku(e,t),isSubordinate:wu(e),root:t}};const Au=e=>e.text(),ju=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),xu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Eu=function(e){let t=Pu(e);return{root:Au(t.root),number:xu(t.number),determiner:Au(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Nu={tags:!0};var Iu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Nu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Nu),e};const Tu={tags:!0};var Gu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Tu).tag("Singular","toPlural"),e};const Du=(e,t)=>"number"==typeof t?e.eq(t):e;var Cu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Du(this,e).map(Pu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Eu(t)),n},[])}isPlural(e){let t=this.filter(e=>Pu(e).isPlural);return Du(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Pu(e).adjectives;n.found&&(t=t.concat(n))}),Du(t,e)}toPlural(e){return Du(this,e).map(e=>Iu(e,Pu(e)))}toSingular(e){return Du(this,e).map(e=>{let t=Pu(e);return Gu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=vu(this);return t=Du(t,e),new Nouns(this.document,t.pointer)}}},Ou=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Vu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Bu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},$u=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Su=/^([0-9,. ]+)\/([0-9,. ]+)$/,Hu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Mu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Lu=function(e){if(!0===Hu.hasOwnProperty(e))return Hu[e];if("a"===e||"an"===e)return 1;const t=Vu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ju(n),r=Ju(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ju(n);let a=r.text("reduced");return Wu.test(a)&&(a=a.replace(Wu,""),r=r.replaceWith(a)),r=qu.hasOwnProperty(a)?qu[a]:Ju(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Ju(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ru=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Uu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Qu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],_u=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Zu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Uu[n][1]&&(e-=Uu[n][1],t.push(Uu[n][0]));return Qu[e]&&t.push(Qu[e]),t};var Yu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ru(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return _u.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Zu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ru(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},Xu=function(e){return e.numerator&&e.denominator?`${Yu({num:e.numerator})} out of ${Yu({num:e.denominator})}`:""};const ec={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var tc=e=>{let t=Yu(e).split(" "),n=t[t.length-1];return ec.hasOwnProperty(n)?t[t.length-1]=ec[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},nc=function(e){if(!e.numerator||!e.denominator)return"";let t=Yu({num:e.numerator}),n=tc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const rc=(e,t)=>"number"==typeof t?e.eq(t):e;var ac=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return rc(this,e).map(Ku)}get(e){return rc(this,e).map(Ku)}json(e){return rc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ku(t);return n.fraction=r,n},[])}toDecimal(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return rc(this,e).forEach(e=>{let t=Ku(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=nc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=Xu(t);e.replaceWith(n)}),this}toPercentage(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ou(this);return t=rc(t,e),new Fractions(this.document,t.pointer)}};const oc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ic=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+oc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+oc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+oc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+oc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${oc})`),r=e.has("("+oc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+oc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+oc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},sc=function(e){if("string"==typeof e)return{num:Lu(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Ku(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Lu(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}},lc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ru(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const uc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},cc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var hc=function(e){let t={suffix:"",prefix:e.prefix};return uc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+uc[e.prefix],t.prefix=""),cc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+cc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},dc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=hc(e);return t+tc(e)+n}if("Ordinal"===t)return e.prefix+lc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=hc(e);return t+Yu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pc=(e,t)=>"number"==typeof t?e.eq(t):e;var mc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return pc(this,e).map(sc)}get(e){return pc(this,e).map(sc).map(e=>e.num)}json(e){return pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=sc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=sc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=dc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=sc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=dc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>sc(t).num===e)}greaterThan(e){return this.filter(t=>sc(t).num>e)}lessThan(e){return this.filter(t=>sc(t).num{let r=sc(n).num;return r>e&&r{let n=sc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=sc(e).num);let t=this.map(t=>{let n=sc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=ic(this);return t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},gc={api:function(e){ac(e),mc(e)}};const fc={people:!0,emails:!0,phoneNumbers:!0,places:!0},bc=function(e={}){return!1!==(e=Object.assign({},fc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var vc={api:function(e){e.prototype.redact=bc}},yc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},wc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},kc=function(e){let t=e.clauses(),n=wc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Pc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Ac=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},jc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},xc=function(e){return e.verbs().toInfinitive(),e};const Ec=(e,t)=>"number"==typeof t?e.eq(t):e;var Nc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=kc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ec(this,e).map(e=>(kc(e),Pc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(kc(e),Ac(e)))}toFutureTense(e){return Ec(this,e).map(e=>(kc(e),e=jc(e)))}toInfinitive(e){return Ec(this,e).map(e=>(kc(e),xc(e)))}toNegative(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ec(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ec(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ec(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=yc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Ic=function(e){return e.match("#Honorific+? #Person+")},Tc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Gc="male",Dc="female",Cc={mr:Gc,mrs:Dc,miss:Dc,madam:Dc,king:Gc,queen:Dc,duke:Gc,duchess:Dc,baron:Gc,baroness:Dc,count:Gc,countess:Dc,prince:Gc,princess:Dc,sire:Gc,dame:Dc,lady:Dc,ayatullah:Gc,congressman:Gc,congresswoman:Dc,"first lady":Dc,mx:null};var Oc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Dc;if(n.has("#MaleName"))return Gc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Cc.hasOwnProperty(e))return Cc[e];if(/^her /.test(e))return Dc;if(/^his /.test(e))return Gc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Gc;if(n&&!t)return Dc}return null};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Vc(this,e).map(Tc)}json(e){return Vc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Tc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Oc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ic(this);return t=Vc(t,e),new People(this.document,t.pointer)}},zc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},$c=function(e){e.prototype.places=function(t){let n=zc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Fc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Sc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Hc=function(e){e.prototype.topics=Sc},Mc={api:function(e){Bc(e),$c(e),Fc(e),Hc(e)}},Lc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Wc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Jc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const qc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Kc=function(e){return e.match("#Negative")},Rc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Uc=function(e){let t=e.clone();t.contractions().expand();const n=Wc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:qc(t,n),negative:Kc(t),phrasal:Rc(n)}};const Qc={tense:"PresentTense"},_c={conditional:!0},Zc={tense:"FutureTense"},Yc={progressive:!0},Xc={tense:"PastTense"},eh={complete:!0,progressive:!1},th={passive:!0},nh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},rh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Qc]],["^wanted to #Infinitive$",[Xc]],["^will want to #Infinitive$",[Zc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Xc]],["^#PresentTense #Gerund$",[Qc]],["^#Infinitive #Gerund$",[Qc]],["^will #Infinitive #Gerund$",[Zc]],["^have #PastTense #Gerund$",[Xc]],["^will have #PastTense #Gerund$",[Xc]]],"simple-present":[["^#PresentTense$",[Qc]],["^#Infinitive$",[Qc]]],"simple-past":[["^#PastTense$",[Xc]]],"simple-future":[["^will #Adverb? #Infinitive",[Zc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Qc,Yc]]],"past-progressive":[["^(was|were) #Gerund$",[Xc,Yc]]],"future-progressive":[["^will be #Gerund$",[Zc,Yc]]],"present-perfect":[["^(has|have) #PastTense$",[Xc,eh]]],"past-perfect":[["^had #PastTense$",[Xc,eh]],["^had #PastTense to #Infinitive",[Xc,eh]]],"future-perfect":[["^will have #PastTense$",[Zc,eh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Xc,Yc]]],"past-perfect-progressive":[["^had been #Gerund$",[Xc,Yc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Zc,Yc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Xc,th]],["^(was|were) being (#PastTense|#Participle)",[Xc,th]],["^(had|have) been (#PastTense|#Participle)",[Xc,th]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Qc,th]],["^(is|are|am) being (#PastTense|#Participle)",[Qc,th]],["^has been (#PastTense|#Participle)",[Qc,th]]],"passive-future":[["will have been (#PastTense|#Participle)",[Zc,th,_c]],["will be being? (#PastTense|#Participle)",[Zc,th,_c]]],"present-conditional":[["would be #PastTense",[Qc,_c]]],"past-conditional":[["would have been #PastTense",[Xc,_c]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Zc]]],"auxiliary-past":[["^did #Infinitive$",[Xc,{plural:!1}]],["^used to #Infinitive$",[Xc,eh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Qc,eh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Xc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let ah=[];Object.keys(rh).map(e=>{rh[e].forEach(t=>{ah.push({name:e,match:t[0],data:nh(t[1])})})});var oh=ah,ih=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),sh(r)&&(n.remove(r),r=n.last()),sh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:lh(t,e)}};const ch=e=>e,hh=(e,t)=>{let n=uh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},dh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=uh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ph=function(e,t){let n=uh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},mh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,mh(e)),r&&e.replace(t.root,r),e},fh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),bh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},vh=function(e){return e&&e.isView?e.text("normal"):""},yh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,mh(e))};var wh=function(e){let t=Uc(e);e=e.clone().toView();const n=ih(e,t);return{root:t.root.text(),preAdverbs:bh(t.adverbs.pre),postAdverbs:bh(t.adverbs.post),auxiliary:vh(t.auxiliary),negative:t.negative.found,prefix:vh(t.prefix),infinitive:yh(t.root),grammar:n}};const kh={tags:!0};var Ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,mh(r)),i&&e.replace(r,i,kh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ah={tags:!0},jh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,mh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=uh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ah),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=jh.simple(e,t),e=jh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ah),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),n(o,e.model).Participle}},xh={infinitive:jh.simple,"simple-present":jh.simple,"simple-past":ch,"simple-future":jh.both,"present-progressive":e=>(e.replace("are","were",Ah),e.replace("(is|are|am)","was",Ah),e),"past-progressive":ch,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":jh.hasHad,"past-perfect":ch,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=fh(e)),e.remove("have"),e),"present-perfect-progressive":jh.hasHad,"past-perfect-progressive":ch,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ah),e),"passive-past":e=>(e.replace("have","had",Ah),e),"passive-present":e=>(e.replace("(is|are)","was",Ah),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ah),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":ch,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ah),e),"auxiliary-past":ch,"auxiliary-present":e=>(e.replace("(do|does)","did",Ah),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ah):(jh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":ch,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ah),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),jh.simple(e,t),fh(e),e)};var Eh=function(e,t,n){return xh.hasOwnProperty(n)?((e=xh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0},Ih=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=dh(e)),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("PresentTense"),e},Th=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("Gerund"),e},Gh={infinitive:Ih,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Ih(e,t);{let t=uh(e).subject;if(hh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Nh)}return e},"simple-past":Ih,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=dh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ih(e,t),e=e.remove("will");return e},"present-progressive":ch,"past-progressive":(e,t)=>{let n=dh(e);return e.replace("(were|was)",n,Nh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ih(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=uh(e).subject;return hh(e)||n.has("i")?((e=gh(e,t)).remove("had"),e):(e.replace("had","has",Nh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":ch,"past-perfect-progressive":e=>e.replace("had","has",Nh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=dh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Nh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":ch,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":ch,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Th(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ph(e);return e.replace(t.auxiliary,n),e}return Th(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":ch,"modal-infinitive":ch,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,mh(r)),a&&(e=e.replace(t.root,a,Nh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return hh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Nh),e.remove("will"),e}};var Dh=function(e,t,n){return Gh.hasOwnProperty(n)?((e=Gh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ch={tags:!0},Oh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,mh(r)),o&&(e=e.replace(r,o,Ch)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Vh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,mh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Ch),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Bh={infinitive:Oh,"simple-present":Oh,"simple-past":Oh,"simple-future":ch,"present-progressive":Vh,"past-progressive":Vh,"future-progressive":ch,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":ch,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":ch,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":ch,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":ch,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":ch,"modal-past":ch,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Oh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var zh=function(e,t,n){return e.has("will")||e.has("going to")?e:Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const $h={tags:!0};var Fh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,mh(a));let s=r(i,e.model).Gerund;return s&&(s=`${dh(e)} ${s}`,e.replace(a,s,$h)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Sh={tags:!0},Hh=function(e,t){let n=ph(e);return e.prepend(n+" not"),e},Mh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Lh=e=>e.has("(is|was|am|are|will|were|be)"),Wh={"simple-present":(e,t)=>!0===Lh(e)?Mh(e):(e=gh(e,t),e=Hh(e)),"simple-past":(e,t)=>!0===Lh(e)?Mh(e):((e=gh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Lh(e)?Mh(e):Hh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Sh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Hh(e)).replace("wants","want",Sh)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Wh.hasOwnProperty(n))return e=Wh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Lh(e)?Mh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const qh=(e,t)=>"number"==typeof t?e.eq(t):e;var Kh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return qh(this,e).map(Uc)}json(e,t){return qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=wh(t),n},[])}subjects(e){return qh(this,e).map(e=>(Uc(e),uh(e).subject))}adverbs(e){return qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return qh(this,e).filter(e=>!0!==uh(e).plural)}isPlural(e){return qh(this,e).filter(e=>!0===uh(e).plural)}isImperative(e){return qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Ph(e,t,n.form)})}toPresentTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Dh(e,t,n.form)})}toPastTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return zh(e,t,n.form)})}toGerund(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Fh(e,t,n.form)})}conjugate(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Ph(e.clone(),t,n.form).text("normal"),PastTense:Eh(e.clone(),t,n.form).text("normal"),PresentTense:Dh(e.clone(),t,n.form).text("normal"),FutureTense:zh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Jh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Lc(this);return t=qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ll),m.plugin(cu),m.plugin(bu),m.plugin(Cu),m.plugin(gc),m.plugin(vc),m.plugin(Nc),m.plugin(Mc),m.plugin(Kh),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/one/compromise-one.cjs b/builds/one/compromise-one.cjs index e94cdff85..2219011c1 100644 --- a/builds/one/compromise-one.cjs +++ b/builds/one/compromise-one.cjs @@ -1,2 +1,2 @@ -var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}},n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]);return t(r,n)});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer,n=this._cache||[];if(e||(e=this.docs.map((t,e)=>[e])),e[t]){let r=this.update([e[t]]);return r._cache=n[t],r}return this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(e._cache&&t&&t.length>1){let n=[];t.forEach(t=>{1===t.length&&n.push(e._cache[t[0]])}),e._cache=n}return e.world=this.world,e}toView(t){return void 0===t&&(t=this.pointer),new View(this.document,t)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var a=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(c(n))for(const r in n)c(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);return o.world=n,"number"==typeof t&&(t=String(t)),t?"string"==typeof t?new e(r.one.tokenize.fromString(t,n)):(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView?new e(t.document,t.ptrs):u(t)?u(t[0])?new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))):new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t)):o):o;var i};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return a(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,t=>t.toLowerCase()))}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){t.has("@hasContraction")&&t.grow("@hasContraction").contractions().expand()},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;let i=e.fullPointer,s=e.fullPointer;e.forEach((l,c)=>{let a=l.fullPointer[0],[u]=a,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([a]).firstTerm()),j(h,a,f,r)):(P(e.update([a]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace(T,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var z=C,N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const F={remove:function(t){const{indexN:e}=this.methods.one.pointer;let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var L=F;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V,D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var U={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if("function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),M.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}},R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},$,z,L,q,U,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null},nt=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,ct=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,at=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||at.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ct),null!==r?[r[1],"to",r[4]]:null)};const ht=/'/,ft=/^[0-9][^-–—]*[-–—].*?[0-9]/,pt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},dt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},gt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},mt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let c=null,a=null;!0===ht.test(r[l].normal)&&([c,a]=r[l].normal.split(ht));let u=mt(i,r[l],c,a);!u&&dt.hasOwnProperty(a)&&(u=dt[a](r,l,e)),!u&>.hasOwnProperty(c)&&(u=gt[c](r,l)),u?(u=wt(u,t),K(n,[s,l],u),pt(n[s],t,l,u.length)):ft.test(r[l].normal)&&(u=ut(r,l),u&&(u=wt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e),pt(n[s],t,l,u.length)))}})}},hooks:["contractions"]},bt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let c=t[e],a=c.machine||c.normal;return void 0!==t[e+1]&&!0===s[a]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===vt.test(c)){let t=c.replace(vt,"");if(s.hasOwnProperty(t)&&t.length>3&&xt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Et={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]},Ot=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(c);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][c];o[a]=t,r[t]&&(r[a]=r[a]||[],r[a]=r[a].concat(r[t]))}else o[a]=0}}return{goNext:n,endAs:r,failTo:o}};const kt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(c))}return t.update(r)};const St=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var At=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=St(t.goNext,void 0),t.failTo=St(t.failTo,0),t.endAs=St(t.endAs,null),t},$t={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ot(t,this.world));var r;let o=_t(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=Ot(t,this.world());return At(e)}}};const Tt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ct=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Tt(n,e),Object.keys(r).forEach(t=>{r[t]=Tt(r[t],e)}),{ptrs:n,byGroup:r}},zt=t=>"[object Object]"===Object.prototype.toString.call(t),Nt=t=>t&&zt(t)&&!0===t.isView,Ft=t=>t&&zt(t)&&!0===t.isNet;var Lt={matchOne:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t).eq(0);if(Ft(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},match:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t);if(Ft(t))return this.sweep(t,{tagger:!1}).view.settle();"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},has:function(t,e,n){const r=this.methods.one;if(Nt(t))return t.fullPointer.length>0;if(Ft(t))return this.sweep(t,{tagger:!1}).view.found;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.filter(e=>e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Nt(t))return this.filter(e=>!e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}"string"==typeof t&&(t=o.killUnicode(t,this.world),t=o.parseMatch(t,n,this.world));let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}},Vt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const qt=function(t,e){return[t[0],t[1],e[2]]},Dt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Gt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Bt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(qt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(qt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Mt=Bt;const Ut=Object.assign({},Lt,Vt,Mt);Ut.lookBehind=Ut.before,Ut.lookBefore=Ut.before,Ut.lookAhead=Ut.after,Ut.lookAfter=Ut.after,Ut.notIf=Ut.ifNo;var Wt=function(t){Object.assign(t.prototype,Ut)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Rt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qt=/ /g,Ht=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Zt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var Kt=function(t){let e=t.split(It),n=[];e.forEach(t=>{Ht(t)?n.push(t):n=n.concat(t.split(Rt))}),n=Zt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Ht(t)?r.push(t):r=r.concat(t.split(Qt))}),r=Zt(r),r};const Jt=/\{([0-9]+)?(, *[0-9]*)?\}/,Xt=/&&/,Yt=new RegExp(/^<\s*(\S+)\s*>/),te=t=>t.charAt(0).toUpperCase()+t.substring(1),ee=t=>t.charAt(t.length-1),ne=t=>t.charAt(0),re=t=>t.substring(1),oe=t=>t.substring(0,t.length-1),ie=function(t){return t=re(t),t=oe(t)},se=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ee(t)&&(n.end=!0,t=oe(t)),"^"===ne(t)&&(n.start=!0,t=re(t)),("["===ne(t)||"]"===ee(t))&&(n.group=null,"["===ne(t)&&(n.groupStart=!0),"]"===ee(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ne(t))){const e=Yt.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ee(t)&&(n.greedy=!0,t=oe(t)),"*"!==t&&"*"===ee(t)&&"\\*"!==t&&(n.greedy=!0,t=oe(t)),"?"===ee(t)&&(n.optional=!0,t=oe(t)),"!"===ne(t)&&(n.negative=!0,t=re(t)),"~"===ne(t)&&"~"===ee(t)&&t.length>2&&(t=ie(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===ne(t)&&")"===ee(t)){Xt.test(t)?(n.choices=t.split(Xt),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=re(n.choices[0]);let r=n.choices.length-1;n.choices[r]=oe(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>se(t,e))),t=""}if("/"===ne(t)&&"/"===ee(t))return t=ie(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===ne(t)&&"}"===ee(t))return t=ie(t),/\//.test(t)?(n.sense=t,n.greedy=!0):n.machine=t,n;if("<"===ne(t)&&">"===ee(t))return t=ie(t),n.chunk=te(t),n.greedy=!0,n;if("%"===ne(t)&&"%"===ee(t))return t=ie(t),n.switch=t,n}return!0===Jt.test(t)&&(t=t.replace(Jt,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ne(t)?(n.tag=re(t),n.tag=te(n.tag),n):"@"===ne(t)?(n.method=re(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var le=se;const ce=/[a-z0-9][-–—][a-z]/i;var ae=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&ce.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t},ue=function(t){return t=function(t){return t.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=(t=function(t){let e=0,n=null;for(let r=0;r{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))},he=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=Kt(t);return r=r.map(t=>le(t,e)),r=ae(r,n),r=ue(r),r};const fe=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var pe=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,c,a,u,h=[];for(let t=0;t4)return n;l=e[i-1],c=s===l?0:1,a=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+c)-1!==t.post.indexOf(e),ve=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>be(t,","),hasPeriod:t=>!0===be(t,".")&&!1===be(t,"..."),hasExclamation:t=>be(t,"!"),hasQuestionMark:t=>be(t,"?")||be(t,"¿"),hasEllipses:t=>be(t,"..")||be(t,"…")||ve(t,"..")||ve(t,"…"),hasSemicolon:t=>be(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>we.test(t.post)||we.test(t.pre),hasDash:t=>ye.test(t.post)||ye.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};xe.hasQuotation=xe.hasQuote;var je=xe;let Ee=function(){};Ee=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(de(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof je[e.method]&&!0===je[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ee(t,e,n,r)):e.choices.some(e=>Ee(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Oe=Ee;const ke=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Pe(t,t.t).length=r-t.t),t.t=r,!0)};const Se=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Oe(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Oe(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Pe(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Te=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Oe(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null},Ce=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Oe(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Oe(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},ze=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},Ne=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Fe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Ce(t),r.implicit&&t.terms[t.t+1]&&Ne(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||ze(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Pe(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Le=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator){if(!0!==t.anything){if(!0!==ke(t,o)){if(!0!==Oe(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative&&!Te(o))return null;if(!0!==t.optional)return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else if(!$e(o))return null}else if(!Ae(o))return null}else if(!_e(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}},Ve=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const qe=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},De=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var Ge={api:Wt,methods:{one:{termMethods:je,parseMatch:he,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=De(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ve(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Be=/^\../,Me=/^#./,Ue=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Be.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var We={html:function(t){let{starts:e,ends:n}=Ue(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Re,""),He.test(o)&&(o=" "),o=o.replace(Qe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Re,""),o="-"===o?" ":o.replace(Ie,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&Ze.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Je={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Je.clean=Je.normal,Je.reduced=Je.root;var Xe=Je;let Ye=[],tn=0;for(;tn<64;)Ye[tn]=0|4294967296*Math.sin(++tn%Math.PI);function en(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(tn=s=0;tn>4]+Ye[s]+~~i[tn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const nn={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(t,e){return Object.assign({},t,e)},sn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,on(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,on(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,rn,!1),root:t=>Ke(t,on(rn,{form:"root"}),!1),hash:t=>en(Ke(t,{keepPunct:!0},!1)),offset:t=>{let e=sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},nn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&sn[i]&&(o[i]=sn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};ln.data=ln.json;var cn=ln,an=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};const un="";var hn={green:t=>""+t+un,red:t=>""+t+un,blue:t=>""+t+un,magenta:t=>""+t+un,cyan:t=>""+t+un,yellow:t=>""+t+un,black:t=>""+t+un,dim:t=>""+t+un,i:t=>""+t+un},fn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(hn.blue("\n ──────")),e.forEach(t=>{console.log(hn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=hn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=hn.blue(" │ ")+hn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return hn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},pn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(hn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(hn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(hn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(hn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},dn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${hn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const gn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var mn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t);if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}},yn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&Xe.hasOwnProperty(t)?e=Object.assign({},Xe[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},jn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var En=function(t,e){let n=jn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r},On={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,c,a]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!c||u[s]&&u[s].id===c)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(c,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(a&&u[u.length-1].id!==a&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:jn,splitAll:En}}},kn=function(t,e){let n=t.concat(e),r=jn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>xn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n},_n=function(t,e){let n=jn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>xn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},An=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},$n={union:function(t){t=Sn(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)}};$n.and=$n.union,$n.intersection=function(t){t=Sn(t,this);let e=_n(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)},$n.not=function(t){t=Sn(t,this);let e=Pn(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)},$n.difference=$n.not,$n.complement=function(){let t=this.all(),e=Pn(t.fullPointer,this.fullPointer);return e=An(e,this.document),this.toView(e)},$n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=kn(t,[e])}),t=An(t,this.document),this.update(t)};var Tn={methods:On,api:function(t){Object.assign(t.prototype,$n)}};const Cn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var zn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Cn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Cn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Cn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t},Nn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})},Fn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Ln=function(t,e,n,r){let o=[];for(let i=0;i0&&(c.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o},Vn=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=zn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Nn(o,e.hooks);return i=Fn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Ln(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Vn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),1===c.length&&"Noun"===t.tag&&c[0].text&&null!==c[0].text.match(/..s$/)&&s(c,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach(e=>e.chunk=t.chunk)}))}}}};const Dn=/ /,Gn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Bn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Dn.test(e))!function(t,e,n,r){let o=e.split(Dn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Bn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nMn(t,e,n,r))};var Un=Mn,Wn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>In({id:t})),e}return[In({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Zn=t=>"[object Array]"===Object.prototype.toString.call(t),Kn=t=>(t=t||"").trim(),Jn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Rn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Qn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=In({});return t.forEach(t=>{if((t=In(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Hn(e=t).forEach(In),e);var e},Xn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Hn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},Yn=function(t){let e=Hn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},tr={text:Xn,txt:Xn,array:Yn,flat:Yn},er=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Xn(t,!0)),null):tr.hasOwnProperty(e)?tr[e](t):t},nr=t=>{Hn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},rr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Kn(t),!rr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||In({});return new g(e)}add(t,e={}){if(Zn(t))return t.forEach(t=>this.add(Kn(t),e)),this;t=Kn(t);let n=In({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Kn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Hn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Hn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Hn(this.json)}fillDown(){var t;return t=this.json,Hn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Zn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){nr(this.json);let t=Hn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return nr(this.json),er(this.json,t)}debug(){return nr(this.json),er(this.json,"debug"),this}}const or=function(t){let e=Jn(t);return new g(e)};or.prototype.plugin=function(t){t(this)};var ir={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const sr=function(t){if(ir.hasOwnProperty(t.id))return ir[t.id];if(ir.hasOwnProperty(t.is))return ir[t.is];let e=t._cache.parents.find(t=>ir[t]);return ir[e]};var lr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:sr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const cr=function(t){return t?"string"==typeof t?[t]:t:[]};var ar=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=cr(t[e].children),t[e].not=cr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},ur={one:{setTag:Un,unTag:Wn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=ar(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return or(e).cache().fillDown().out("array")}(Object.assign({},e,t));return lr(n)}}};const hr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var fr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),hr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return hr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}},pr=function(t){Object.assign(t.prototype,fr)},dr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const gr=new Set(["Auxiliary","Possessive"]);var mr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(gr.has(t)||!e.hasOwnProperty(n))return 1;if(gr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:ur,api:pr,lib:dr};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,yr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}},n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]);return t(r,n)});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer,n=this._cache||[];if(e||(e=this.docs.map((t,e)=>[e])),e[t]){let r=this.update([e[t]]);return r._cache=n[t],r}return this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(e._cache&&t&&t.length>1){let n=[];t.forEach(t=>{1===t.length&&n.push(e._cache[t[0]])}),e._cache=n}return e.world=this.world,e}toView(t){return void 0===t&&(t=this.pointer),new View(this.document,t)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var a=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(c(n))for(const r in n)c(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);return o.world=n,"number"==typeof t&&(t=String(t)),t?"string"==typeof t?new e(r.one.tokenize.fromString(t,n)):(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView?new e(t.document,t.ptrs):u(t)?u(t[0])?new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))):new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t)):o):o;var i};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return a(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,t=>t.toLowerCase()))}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){t.has("@hasContraction")&&t.grow("@hasContraction").contractions().expand()},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;let i=e.fullPointer,s=e.fullPointer;e.forEach((l,c)=>{let a=l.fullPointer[0],[u]=a,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([a]).firstTerm()),j(h,a,f,r)):(P(e.update([a]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace(T,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var z=C,N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const F={remove:function(t){const{indexN:e}=this.methods.one.pointer;let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var L=F;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V,D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var U={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if("function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),M.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}},R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},$,z,L,q,U,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null},nt=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,ct=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,at=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||at.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ct),null!==r?[r[1],"to",r[4]]:null)};const ht=/'/,ft=/^[0-9][^-–—]*[-–—].*?[0-9]/,pt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},dt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},gt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},mt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let c=null,a=null;!0===ht.test(r[l].normal)&&([c,a]=r[l].normal.split(ht));let u=mt(i,r[l],c,a);!u&&dt.hasOwnProperty(a)&&(u=dt[a](r,l,e)),!u&>.hasOwnProperty(c)&&(u=gt[c](r,l)),u?(u=wt(u,t),K(n,[s,l],u),pt(n[s],t,l,u.length)):ft.test(r[l].normal)&&(u=ut(r,l),u&&(u=wt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e),pt(n[s],t,l,u.length)))}})}},hooks:["contractions"]},bt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let c=t[e],a=c.machine||c.normal;return void 0!==t[e+1]&&!0===s[a]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===vt.test(c)){let t=c.replace(vt,"");if(s.hasOwnProperty(t)&&t.length>3&&xt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Et={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]},Ot=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(c);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][c];o[a]=t,r[t]&&(r[a]=r[a]||[],r[a]=r[a].concat(r[t]))}else o[a]=0}}return{goNext:n,endAs:r,failTo:o}};const kt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(c))}return t.update(r)};const St=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var At=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=St(t.goNext,void 0),t.failTo=St(t.failTo,0),t.endAs=St(t.endAs,null),t},$t={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ot(t,this.world));var r;let o=_t(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=Ot(t,this.world());return At(e)}}};const Tt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ct=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Tt(n,e),Object.keys(r).forEach(t=>{r[t]=Tt(r[t],e)}),{ptrs:n,byGroup:r}},zt=t=>"[object Object]"===Object.prototype.toString.call(t),Nt=t=>t&&zt(t)&&!0===t.isView,Ft=t=>t&&zt(t)&&!0===t.isNet;var Lt={matchOne:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t).eq(0);if(Ft(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},match:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t);if(Ft(t))return this.sweep(t,{tagger:!1}).view.settle();"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},has:function(t,e,n){const r=this.methods.one;if(Nt(t))return t.fullPointer.length>0;if(Ft(t))return this.sweep(t,{tagger:!1}).view.found;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.filter(e=>e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Nt(t))return this.filter(e=>!e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}"string"==typeof t&&(t=o.killUnicode(t,this.world),t=o.parseMatch(t,n,this.world));let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}},Vt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const qt=function(t,e){return[t[0],t[1],e[2]]},Dt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Gt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Bt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(qt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(qt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Mt=Bt;const Ut=Object.assign({},Lt,Vt,Mt);Ut.lookBehind=Ut.before,Ut.lookBefore=Ut.before,Ut.lookAhead=Ut.after,Ut.lookAfter=Ut.after,Ut.notIf=Ut.ifNo;var Wt=function(t){Object.assign(t.prototype,Ut)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Rt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qt=/ /g,Ht=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Zt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var Kt=function(t){let e=t.split(It),n=[];e.forEach(t=>{Ht(t)?n.push(t):n=n.concat(t.split(Rt))}),n=Zt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Ht(t)?r.push(t):r=r.concat(t.split(Qt))}),r=Zt(r),r};const Jt=/\{([0-9]+)?(, *[0-9]*)?\}/,Xt=/&&/,Yt=new RegExp(/^<\s*(\S+)\s*>/),te=t=>t.charAt(0).toUpperCase()+t.substring(1),ee=t=>t.charAt(t.length-1),ne=t=>t.charAt(0),re=t=>t.substring(1),oe=t=>t.substring(0,t.length-1),ie=function(t){return t=re(t),t=oe(t)},se=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ee(t)&&(n.end=!0,t=oe(t)),"^"===ne(t)&&(n.start=!0,t=re(t)),("["===ne(t)||"]"===ee(t))&&(n.group=null,"["===ne(t)&&(n.groupStart=!0),"]"===ee(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ne(t))){const e=Yt.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ee(t)&&(n.greedy=!0,t=oe(t)),"*"!==t&&"*"===ee(t)&&"\\*"!==t&&(n.greedy=!0,t=oe(t)),"?"===ee(t)&&(n.optional=!0,t=oe(t)),"!"===ne(t)&&(n.negative=!0,t=re(t)),"~"===ne(t)&&"~"===ee(t)&&t.length>2&&(t=ie(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===ne(t)&&")"===ee(t)){Xt.test(t)?(n.choices=t.split(Xt),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=re(n.choices[0]);let r=n.choices.length-1;n.choices[r]=oe(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>se(t,e))),t=""}if("/"===ne(t)&&"/"===ee(t))return t=ie(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===ne(t)&&"}"===ee(t))return t=ie(t),/\//.test(t)?(n.sense=t,n.greedy=!0):n.machine=t,n;if("<"===ne(t)&&">"===ee(t))return t=ie(t),n.chunk=te(t),n.greedy=!0,n;if("%"===ne(t)&&"%"===ee(t))return t=ie(t),n.switch=t,n}return!0===Jt.test(t)&&(t=t.replace(Jt,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ne(t)?(n.tag=re(t),n.tag=te(n.tag),n):"@"===ne(t)?(n.method=re(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var le=se;const ce=/[a-z0-9][-–—][a-z]/i;var ae=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&ce.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t},ue=function(t){return t=function(t){return t.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=(t=function(t){let e=0,n=null;for(let r=0;r{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))},he=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=Kt(t);return r=r.map(t=>le(t,e)),r=ae(r,n),r=ue(r),r};const fe=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var pe=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,c,a,u,h=[];for(let t=0;t4)return n;l=e[i-1],c=s===l?0:1,a=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+c)-1!==t.post.indexOf(e),ve=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>be(t,","),hasPeriod:t=>!0===be(t,".")&&!1===be(t,"..."),hasExclamation:t=>be(t,"!"),hasQuestionMark:t=>be(t,"?")||be(t,"¿"),hasEllipses:t=>be(t,"..")||be(t,"…")||ve(t,"..")||ve(t,"…"),hasSemicolon:t=>be(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>we.test(t.post)||we.test(t.pre),hasDash:t=>ye.test(t.post)||ye.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};xe.hasQuotation=xe.hasQuote;var je=xe;let Ee=function(){};Ee=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(de(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof je[e.method]&&!0===je[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ee(t,e,n,r)):e.choices.some(e=>Ee(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Oe=Ee;const ke=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Pe(t,t.t).length=r-t.t),t.t=r,!0)};const Se=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Oe(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Oe(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Pe(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Te=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Oe(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null},Ce=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Oe(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Oe(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},ze=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},Ne=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Fe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Ce(t),r.implicit&&t.terms[t.t+1]&&Ne(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||ze(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Pe(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Le=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator){if(!0!==t.anything){if(!0!==ke(t,o)){if(!0!==Oe(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative&&!Te(o))return null;if(!0!==t.optional)return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else if(!$e(o))return null}else if(!Ae(o))return null}else if(!_e(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}},Ve=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const qe=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},De=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var Ge={api:Wt,methods:{one:{termMethods:je,parseMatch:he,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=De(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ve(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Be=/^\../,Me=/^#./,Ue=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Be.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var We={html:function(t){let{starts:e,ends:n}=Ue(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Re,""),He.test(o)&&(o=" "),o=o.replace(Qe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Re,""),o="-"===o?" ":o.replace(Ie,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&Ze.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Je={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Je.clean=Je.normal,Je.reduced=Je.root;var Xe=Je;let Ye=[],tn=0;for(;tn<64;)Ye[tn]=0|4294967296*Math.sin(++tn%Math.PI);function en(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(tn=s=0;tn>4]+Ye[s]+~~i[tn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const nn={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(t,e){return Object.assign({},t,e)},sn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,on(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,on(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,rn,!1),root:t=>Ke(t,on(rn,{form:"root"}),!1),hash:t=>en(Ke(t,{keepPunct:!0},!1)),offset:t=>{let e=sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},nn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&sn[i]&&(o[i]=sn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};ln.data=ln.json;var cn=ln,an=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};const un="";var hn={green:t=>""+t+un,red:t=>""+t+un,blue:t=>""+t+un,magenta:t=>""+t+un,cyan:t=>""+t+un,yellow:t=>""+t+un,black:t=>""+t+un,dim:t=>""+t+un,i:t=>""+t+un},fn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(hn.blue("\n ──────")),e.forEach(t=>{console.log(hn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=hn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=hn.blue(" │ ")+hn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return hn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},pn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(hn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(hn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(hn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(hn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},dn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${hn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const gn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var mn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t);if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}},yn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&Xe.hasOwnProperty(t)?e=Object.assign({},Xe[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},jn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var En=function(t,e){let n=jn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r},On={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,c,a]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!c||u[s]&&u[s].id===c)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(c,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(a&&u[u.length-1].id!==a&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:jn,splitAll:En}}},kn=function(t,e){let n=t.concat(e),r=jn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>xn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n},_n=function(t,e){let n=jn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>xn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},An=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},$n={union:function(t){t=Sn(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)}};$n.and=$n.union,$n.intersection=function(t){t=Sn(t,this);let e=_n(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)},$n.not=function(t){t=Sn(t,this);let e=Pn(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)},$n.difference=$n.not,$n.complement=function(){let t=this.all(),e=Pn(t.fullPointer,this.fullPointer);return e=An(e,this.document),this.toView(e)},$n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=kn(t,[e])}),t=An(t,this.document),this.update(t)};var Tn={methods:On,api:function(t){Object.assign(t.prototype,$n)}};const Cn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var zn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Cn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Cn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Cn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t},Nn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})},Fn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Ln=function(t,e,n,r){let o=[];for(let i=0;i0&&(c.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o},Vn=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=zn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Nn(o,e.hooks);return i=Fn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Ln(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Vn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),1===c.length&&"Noun"===t.tag&&c[0].text&&null!==c[0].text.match(/..s$/)&&s(c,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&(console.log(t),l(c,t.unTag,n,t.safe,o)),t.chunk&&c.forEach(e=>e.chunk=t.chunk)}))}}}};const Dn=/ /,Gn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Bn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Dn.test(e))!function(t,e,n,r){let o=e.split(Dn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Bn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nMn(t,e,n,r))};var Un=Mn,Wn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>In({id:t})),e}return[In({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Zn=t=>"[object Array]"===Object.prototype.toString.call(t),Kn=t=>(t=t||"").trim(),Jn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Rn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Qn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=In({});return t.forEach(t=>{if((t=In(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Hn(e=t).forEach(In),e);var e},Xn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Hn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},Yn=function(t){let e=Hn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},tr={text:Xn,txt:Xn,array:Yn,flat:Yn},er=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Xn(t,!0)),null):tr.hasOwnProperty(e)?tr[e](t):t},nr=t=>{Hn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},rr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Kn(t),!rr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||In({});return new g(e)}add(t,e={}){if(Zn(t))return t.forEach(t=>this.add(Kn(t),e)),this;t=Kn(t);let n=In({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Kn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Hn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Hn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Hn(this.json)}fillDown(){var t;return t=this.json,Hn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Zn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){nr(this.json);let t=Hn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return nr(this.json),er(this.json,t)}debug(){return nr(this.json),er(this.json,"debug"),this}}const or=function(t){let e=Jn(t);return new g(e)};or.prototype.plugin=function(t){t(this)};var ir={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const sr=function(t){if(ir.hasOwnProperty(t.id))return ir[t.id];if(ir.hasOwnProperty(t.is))return ir[t.is];let e=t._cache.parents.find(t=>ir[t]);return ir[e]};var lr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:sr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const cr=function(t){return t?"string"==typeof t?[t]:t:[]};var ar=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=cr(t[e].children),t[e].not=cr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},ur={one:{setTag:Un,unTag:Wn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=ar(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return or(e).cache().fillDown().out("array")}(Object.assign({},e,t));return lr(n)}}};const hr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var fr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),hr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return hr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}},pr=function(t){Object.assign(t.prototype,fr)},dr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const gr=new Set(["Auxiliary","Possessive"]);var mr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(gr.has(t)||!e.hasOwnProperty(n))return 1;if(gr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:ur,api:pr,lib:dr};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,yr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var br=function(t){let e=[],n=t.split(yr);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Vr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,qr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Dr=/['’]/,Gr=/^[a-z]\.([a-z]\.)+/i,Br=/^[-+.][0-9]/,Mr=/^'[0-9]{2}/;var Ur=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Vr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Br.test(t)?"'"===n&&Mr.test(t)?(n="",e):"":(n="",e)))).replace(qr,o=>(r=o,Dr.test(o)&&/[sn]['’]$/.test(e)&&!1===Dr.test(n)?(r=r.replace(Dr,""),"'"):!0===Gr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Wr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Ir=/([A-Z]\.)+[A-Z]?,?$/,Rr=/^[A-Z]\.,?$/,Qr=/[A-Z]{2,}('s|,)?$/,Hr=/([a-z]\.)+[a-z]\.?$/;var Zr=function(t){return function(t){return!0===Ir.test(t)||!0===Hr.test(t)||!0===Rr.test(t)||!0===Qr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Kr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Wr(r),r=n(r,e),r=Zr(r),t.normal=r},Jr={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:_r,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Fr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Cr(n),n=$r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Ur(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{Kr(t,e)}),n})}}}},Xr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Yr={},to={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{Yr[e]=!0,to[e]="Abbreviation",void 0!==t[1]&&(to[e]=[to[e],t[1]])})});var eo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let no={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ro={};Object.keys(no).forEach((function(t){no[t].split("").forEach((function(e){ro[e]=t}))}));const oo=/\//,io=/[a-z]\.[a-z]/i,so=/[0-9]/;var lo=function(t,e){let n=t.normal||t.text;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),oo.test(n)&&!io.test(n)&&!so.test(n)){let e=n.split(oo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const co=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),co.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},uo=function(t){let e=0,n=0,r=t.document;for(let t=0;tho(t,lo),machine:t=>ho(t,ao),normal:t=>ho(t,Kr),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const mo={safe:!0,min:3};var wo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=go(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}},yo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=po},lib:wo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};return d.extend(H),d.extend(vn),d.extend(Ge),d.extend(Tn),d.extend(mr),d.plugin(yt),d.extend(fo),d.plugin(w),d.extend($t),d.extend(yo),d.extend(Et),d.extend(qn),d},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); diff --git a/builds/one/compromise-one.mjs b/builds/one/compromise-one.mjs index 08a5b3744..c5751776e 100644 --- a/builds/one/compromise-one.mjs +++ b/builds/one/compromise-one.mjs @@ -1,2 +1,2 @@ -var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]);return t(r,n)});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer,n=this._cache||[];if(e||(e=this.docs.map((t,e)=>[e])),e[t]){let r=this.update([e[t]]);return r._cache=n[t],r}return this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(e._cache&&t&&t.length>1){let n=[];t.forEach(t=>{1===t.length&&n.push(e._cache[t[0]])}),e._cache=n}return e.world=this.world,e}toView(t){return void 0===t&&(t=this.pointer),new View(this.document,t)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(u(t)){if(u(t[0])){return new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set}))))}return new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t))}return o};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,t=>t.toLowerCase())));var i}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){if(t.has("@hasContraction")){t.grow("@hasContraction").contractions().expand()}},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace(T,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},C.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var z=C;var N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const F={remove:function(t){const{indexN:e}=this.methods.one.pointer;let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var L=F;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V;var D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var U={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if("function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),M.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}};var R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},$,z,L,q,U,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null};var nt=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/'/,ft=/^[0-9][^-–—]*[-–—].*?[0-9]/,pt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},dt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},gt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},mt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===ht.test(r[l].normal)&&([a,c]=r[l].normal.split(ht));let u=mt(i,r[l],a,c);!u&&dt.hasOwnProperty(c)&&(u=dt[c](r,l,e)),!u&>.hasOwnProperty(a)&&(u=gt[a](r,l)),u?(u=wt(u,t),K(n,[s,l],u),pt(n[s],t,l,u.length)):ft.test(r[l].normal)&&(u=ut(r,l),u&&(u=wt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e),pt(n[s],t,l,u.length)))}})}},hooks:["contractions"]};var bt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===vt.test(a)){let t=a.replace(vt,"");if(s.hasOwnProperty(t)&&t.length>3&&xt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Et={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]};var Ot=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const kt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const St=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var At=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=St(t.goNext,void 0),t.failTo=St(t.failTo,0),t.endAs=St(t.endAs,null),t};var $t={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ot(t,this.world));var r;let o=_t(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=Ot(t,this.world());return At(e)}}};const Tt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ct=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Tt(n,e),Object.keys(r).forEach(t=>{r[t]=Tt(r[t],e)}),{ptrs:n,byGroup:r}},zt=t=>"[object Object]"===Object.prototype.toString.call(t),Nt=t=>t&&zt(t)&&!0===t.isView,Ft=t=>t&&zt(t)&&!0===t.isNet;var Lt={matchOne:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t).eq(0);if(Ft(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t);if(Ft(t))return this.sweep(t,{tagger:!1}).view.settle();"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Nt(t)){return t.fullPointer.length>0}if(Ft(t))return this.sweep(t,{tagger:!1}).view.found;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.filter(e=>e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Nt(t))return this.filter(e=>!e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}"string"==typeof t&&(t=o.killUnicode(t,this.world),t=o.parseMatch(t,n,this.world));let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}};var Vt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const qt=function(t,e){return[t[0],t[1],e[2]]},Dt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Gt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Bt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(qt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(qt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Mt=Bt;const Ut=Object.assign({},Lt,Vt,Mt);Ut.lookBehind=Ut.before,Ut.lookBefore=Ut.before,Ut.lookAhead=Ut.after,Ut.lookAfter=Ut.after,Ut.notIf=Ut.ifNo;var Wt=function(t){Object.assign(t.prototype,Ut)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Rt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qt=/ /g,Ht=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Zt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var Kt=function(t){let e=t.split(It),n=[];e.forEach(t=>{Ht(t)?n.push(t):n=n.concat(t.split(Rt))}),n=Zt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Ht(t)?r.push(t):r=r.concat(t.split(Qt))}),r=Zt(r),r};const Jt=/\{([0-9]+)?(, *[0-9]*)?\}/,Xt=/&&/,Yt=new RegExp(/^<\s*(\S+)\s*>/),te=t=>t.charAt(0).toUpperCase()+t.substring(1),ee=t=>t.charAt(t.length-1),ne=t=>t.charAt(0),re=t=>t.substring(1),oe=t=>t.substring(0,t.length-1),ie=function(t){return t=re(t),t=oe(t)},se=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ee(t)&&(n.end=!0,t=oe(t)),"^"===ne(t)&&(n.start=!0,t=re(t)),("["===ne(t)||"]"===ee(t))&&(n.group=null,"["===ne(t)&&(n.groupStart=!0),"]"===ee(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ne(t))){const e=Yt.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ee(t)&&(n.greedy=!0,t=oe(t)),"*"!==t&&"*"===ee(t)&&"\\*"!==t&&(n.greedy=!0,t=oe(t)),"?"===ee(t)&&(n.optional=!0,t=oe(t)),"!"===ne(t)&&(n.negative=!0,t=re(t)),"~"===ne(t)&&"~"===ee(t)&&t.length>2&&(t=ie(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===ne(t)&&")"===ee(t)){Xt.test(t)?(n.choices=t.split(Xt),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=re(n.choices[0]);let r=n.choices.length-1;n.choices[r]=oe(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>se(t,e))),t=""}if("/"===ne(t)&&"/"===ee(t))return t=ie(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===ne(t)&&"}"===ee(t))return t=ie(t),/\//.test(t)?(n.sense=t,n.greedy=!0):n.machine=t,n;if("<"===ne(t)&&">"===ee(t))return t=ie(t),n.chunk=te(t),n.greedy=!0,n;if("%"===ne(t)&&"%"===ee(t))return t=ie(t),n.switch=t,n}return!0===Jt.test(t)&&(t=t.replace(Jt,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ne(t)?(n.tag=re(t),n.tag=te(n.tag),n):"@"===ne(t)?(n.method=re(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var le=se;const ae=/[a-z0-9][-–—][a-z]/i;var ce=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&ae.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t};var ue=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=t.map(t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))};var he=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=Kt(t);return r=r.map(t=>le(t,e)),r=ce(r,n),r=ue(r),r};const fe=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var pe=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ve=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>be(t,","),hasPeriod:t=>!0===be(t,".")&&!1===be(t,"..."),hasExclamation:t=>be(t,"!"),hasQuestionMark:t=>be(t,"?")||be(t,"¿"),hasEllipses:t=>be(t,"..")||be(t,"…")||ve(t,"..")||ve(t,"…"),hasSemicolon:t=>be(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>we.test(t.post)||we.test(t.pre),hasDash:t=>ye.test(t.post)||ye.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};xe.hasQuotation=xe.hasQuote;var je=xe;let Ee=function(){};Ee=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(de(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof je[e.method]&&!0===je[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ee(t,e,n,r)):e.choices.some(e=>Ee(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Oe=Ee;const ke=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Pe(t,t.t).length=r-t.t}return t.t=r,!0};const Se=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Oe(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Oe(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Pe(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Te=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Oe(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null};var Ce=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Oe(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Oe(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var ze=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var Ne=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Fe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Ce(t),r.implicit&&t.terms[t.t+1]&&Ne(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!ze(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Pe(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Le=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==ke(t,o))if(!0!==Oe(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative){if(!Te(o))return null}if(!0!==t.optional)return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(!$e(o))return null}else{if(!Ae(o))return null}else{if(!_e(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}};var Ve=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const qe=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},De=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var Ge={api:Wt,methods:{one:{termMethods:je,parseMatch:he,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=De(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ve(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Be=/^\../,Me=/^#./,Ue=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Be.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var We={html:function(t){let{starts:e,ends:n}=Ue(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Re,""),He.test(o)&&(o=" "),o=o.replace(Qe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Re,""),o="-"===o?" ":o.replace(Ie,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&Ze.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Je={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Je.clean=Je.normal,Je.reduced=Je.root;var Xe=Je;let Ye=[],tn=0;for(;tn<64;)Ye[tn]=0|4294967296*Math.sin(++tn%Math.PI);function en(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(tn=s=0;tn>4]+Ye[s]+~~i[tn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const nn={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(t,e){return Object.assign({},t,e)},sn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,on(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,on(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,rn,!1),root:t=>Ke(t,on(rn,{form:"root"}),!1),hash:t=>en(Ke(t,{keepPunct:!0},!1)),offset:t=>{let e=sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},nn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&sn[i]&&(o[i]=sn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};ln.data=ln.json;var an=ln;var cn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};var un={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var hn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(un.blue("\n ──────")),e.forEach(t=>{console.log(un.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=un.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=un.blue(" │ ")+un.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return un[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var fn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(un.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(un.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(un.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(un.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var pn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${un.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const dn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var gn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t)}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}};var wn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&Xe.hasOwnProperty(t)?e=Object.assign({},Xe[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},xn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var jn=function(t,e){let n=xn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r};var En={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:xn,splitAll:jn}}};var On=function(t,e){let n=t.concat(e),r=xn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>vn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n};var Pn=function(t,e){let n=xn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>vn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Sn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},An={union:function(t){t=_n(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)}};An.and=An.union,An.intersection=function(t){t=_n(t,this);let e=Pn(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.not=function(t){t=_n(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.difference=An.not,An.complement=function(){let t=this.all(),e=kn(t.fullPointer,this.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=On(t,[e])}),t=Sn(t,this.document),this.update(t)};var $n={methods:En,api:function(t){Object.assign(t.prototype,An)}};const Tn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Cn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Tn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Tn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Tn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t};var zn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})};var Nn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>{if(0===t.wants.length)return!0;return t.wants.filter(t=>r.has(t)).length>=t.minWant})})};var Fn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o};var Ln=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=Cn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=zn(o,e.hooks);return i=Nn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Fn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Ln(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(a,t.unTag,n,t.safe,o),t.chunk&&a.forEach(e=>e.chunk=t.chunk)})}}}};const qn=/ /,Dn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Gn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),qn.test(e))!function(t,e,n,r){let o=e.split(qn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Gn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nBn(t,e,n,r))};var Mn=Bn;var Un=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Wn({id:t})),e}return[Wn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Hn=t=>"[object Array]"===Object.prototype.toString.call(t),Zn=t=>(t=t||"").trim(),Kn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||In.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Rn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Wn({});return t.forEach(t=>{if((t=Wn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Qn(e=t).forEach(Wn),e);var e},Jn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Qn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},Xn=function(t){let e=Qn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Yn={text:Jn,txt:Jn,array:Xn,flat:Xn},tr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Jn(t,!0)),null):Yn.hasOwnProperty(e)?Yn[e](t):t},er=t=>{Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},nr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Zn(t),!nr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Wn({});return new g(e)}add(t,e={}){if(Hn(t))return t.forEach(t=>this.add(Zn(t),e)),this;t=Zn(t);let n=Wn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Zn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Qn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Qn(this.json)}fillDown(){var t;return t=this.json,Qn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Hn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){er(this.json);let t=Qn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return er(this.json),tr(this.json,t)}debug(){return er(this.json),tr(this.json,"debug"),this}}const rr=function(t){let e=Kn(t);return new g(e)};rr.prototype.plugin=function(t){t(this)};var or={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ir=function(t){if(or.hasOwnProperty(t.id))return or[t.id];if(or.hasOwnProperty(t.is))return or[t.is];let e=t._cache.parents.find(t=>or[t]);return or[e]};var sr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:ir(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const lr=function(t){return t?"string"==typeof t?[t]:t:[]};var ar=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=lr(t[e].children),t[e].not=lr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t};var cr={one:{setTag:Mn,unTag:Un,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=ar(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return rr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return sr(n)}}};const ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var hr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),ur(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return ur(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}};var fr=function(t){Object.assign(t.prototype,hr)};var pr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const dr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(dr.has(t)||!e.hasOwnProperty(n))return 1;if(dr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:cr,api:fr,lib:pr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]);return t(r,n)});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer,n=this._cache||[];if(e||(e=this.docs.map((t,e)=>[e])),e[t]){let r=this.update([e[t]]);return r._cache=n[t],r}return this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(e._cache&&t&&t.length>1){let n=[];t.forEach(t=>{1===t.length&&n.push(e._cache[t[0]])}),e._cache=n}return e.world=this.world,e}toView(t){return void 0===t&&(t=this.pointer),new View(this.document,t)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(u(t)){if(u(t[0])){return new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set}))))}return new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t))}return o};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,t=>t.toLowerCase())));var i}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){if(t.has("@hasContraction")){t.grow("@hasContraction").contractions().expand()}},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace(T,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},C.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var z=C;var N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const F={remove:function(t){const{indexN:e}=this.methods.one.pointer;let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var L=F;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V;var D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var U={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if("function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),M.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}};var R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},$,z,L,q,U,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null};var nt=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/'/,ft=/^[0-9][^-–—]*[-–—].*?[0-9]/,pt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},dt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},gt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},mt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===ht.test(r[l].normal)&&([a,c]=r[l].normal.split(ht));let u=mt(i,r[l],a,c);!u&&dt.hasOwnProperty(c)&&(u=dt[c](r,l,e)),!u&>.hasOwnProperty(a)&&(u=gt[a](r,l)),u?(u=wt(u,t),K(n,[s,l],u),pt(n[s],t,l,u.length)):ft.test(r[l].normal)&&(u=ut(r,l),u&&(u=wt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e),pt(n[s],t,l,u.length)))}})}},hooks:["contractions"]};var bt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===vt.test(a)){let t=a.replace(vt,"");if(s.hasOwnProperty(t)&&t.length>3&&xt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Et={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]};var Ot=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const kt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const St=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var At=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=St(t.goNext,void 0),t.failTo=St(t.failTo,0),t.endAs=St(t.endAs,null),t};var $t={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ot(t,this.world));var r;let o=_t(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=Ot(t,this.world());return At(e)}}};const Tt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ct=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Tt(n,e),Object.keys(r).forEach(t=>{r[t]=Tt(r[t],e)}),{ptrs:n,byGroup:r}},zt=t=>"[object Object]"===Object.prototype.toString.call(t),Nt=t=>t&&zt(t)&&!0===t.isView,Ft=t=>t&&zt(t)&&!0===t.isNet;var Lt={matchOne:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t).eq(0);if(Ft(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t);if(Ft(t))return this.sweep(t,{tagger:!1}).view.settle();"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Nt(t)){return t.fullPointer.length>0}if(Ft(t))return this.sweep(t,{tagger:!1}).view.found;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.filter(e=>e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Nt(t))return this.filter(e=>!e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}"string"==typeof t&&(t=o.killUnicode(t,this.world),t=o.parseMatch(t,n,this.world));let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}};var Vt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const qt=function(t,e){return[t[0],t[1],e[2]]},Dt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Gt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Bt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(qt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(qt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Mt=Bt;const Ut=Object.assign({},Lt,Vt,Mt);Ut.lookBehind=Ut.before,Ut.lookBefore=Ut.before,Ut.lookAhead=Ut.after,Ut.lookAfter=Ut.after,Ut.notIf=Ut.ifNo;var Wt=function(t){Object.assign(t.prototype,Ut)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Rt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qt=/ /g,Ht=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Zt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var Kt=function(t){let e=t.split(It),n=[];e.forEach(t=>{Ht(t)?n.push(t):n=n.concat(t.split(Rt))}),n=Zt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Ht(t)?r.push(t):r=r.concat(t.split(Qt))}),r=Zt(r),r};const Jt=/\{([0-9]+)?(, *[0-9]*)?\}/,Xt=/&&/,Yt=new RegExp(/^<\s*(\S+)\s*>/),te=t=>t.charAt(0).toUpperCase()+t.substring(1),ee=t=>t.charAt(t.length-1),ne=t=>t.charAt(0),re=t=>t.substring(1),oe=t=>t.substring(0,t.length-1),ie=function(t){return t=re(t),t=oe(t)},se=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ee(t)&&(n.end=!0,t=oe(t)),"^"===ne(t)&&(n.start=!0,t=re(t)),("["===ne(t)||"]"===ee(t))&&(n.group=null,"["===ne(t)&&(n.groupStart=!0),"]"===ee(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ne(t))){const e=Yt.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ee(t)&&(n.greedy=!0,t=oe(t)),"*"!==t&&"*"===ee(t)&&"\\*"!==t&&(n.greedy=!0,t=oe(t)),"?"===ee(t)&&(n.optional=!0,t=oe(t)),"!"===ne(t)&&(n.negative=!0,t=re(t)),"~"===ne(t)&&"~"===ee(t)&&t.length>2&&(t=ie(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===ne(t)&&")"===ee(t)){Xt.test(t)?(n.choices=t.split(Xt),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=re(n.choices[0]);let r=n.choices.length-1;n.choices[r]=oe(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>se(t,e))),t=""}if("/"===ne(t)&&"/"===ee(t))return t=ie(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===ne(t)&&"}"===ee(t))return t=ie(t),/\//.test(t)?(n.sense=t,n.greedy=!0):n.machine=t,n;if("<"===ne(t)&&">"===ee(t))return t=ie(t),n.chunk=te(t),n.greedy=!0,n;if("%"===ne(t)&&"%"===ee(t))return t=ie(t),n.switch=t,n}return!0===Jt.test(t)&&(t=t.replace(Jt,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ne(t)?(n.tag=re(t),n.tag=te(n.tag),n):"@"===ne(t)?(n.method=re(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var le=se;const ae=/[a-z0-9][-–—][a-z]/i;var ce=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&ae.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t};var ue=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=t.map(t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))};var he=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=Kt(t);return r=r.map(t=>le(t,e)),r=ce(r,n),r=ue(r),r};const fe=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var pe=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ve=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>be(t,","),hasPeriod:t=>!0===be(t,".")&&!1===be(t,"..."),hasExclamation:t=>be(t,"!"),hasQuestionMark:t=>be(t,"?")||be(t,"¿"),hasEllipses:t=>be(t,"..")||be(t,"…")||ve(t,"..")||ve(t,"…"),hasSemicolon:t=>be(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>we.test(t.post)||we.test(t.pre),hasDash:t=>ye.test(t.post)||ye.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};xe.hasQuotation=xe.hasQuote;var je=xe;let Ee=function(){};Ee=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(de(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof je[e.method]&&!0===je[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ee(t,e,n,r)):e.choices.some(e=>Ee(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Oe=Ee;const ke=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Pe(t,t.t).length=r-t.t}return t.t=r,!0};const Se=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Oe(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Oe(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Pe(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Te=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Oe(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null};var Ce=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Oe(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Oe(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var ze=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var Ne=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Fe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Ce(t),r.implicit&&t.terms[t.t+1]&&Ne(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!ze(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Pe(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Le=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==ke(t,o))if(!0!==Oe(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative){if(!Te(o))return null}if(!0!==t.optional)return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(!$e(o))return null}else{if(!Ae(o))return null}else{if(!_e(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}};var Ve=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const qe=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},De=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var Ge={api:Wt,methods:{one:{termMethods:je,parseMatch:he,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=De(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ve(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Be=/^\../,Me=/^#./,Ue=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Be.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var We={html:function(t){let{starts:e,ends:n}=Ue(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Re,""),He.test(o)&&(o=" "),o=o.replace(Qe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Re,""),o="-"===o?" ":o.replace(Ie,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&Ze.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Je={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Je.clean=Je.normal,Je.reduced=Je.root;var Xe=Je;let Ye=[],tn=0;for(;tn<64;)Ye[tn]=0|4294967296*Math.sin(++tn%Math.PI);function en(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(tn=s=0;tn>4]+Ye[s]+~~i[tn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const nn={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(t,e){return Object.assign({},t,e)},sn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,on(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,on(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,rn,!1),root:t=>Ke(t,on(rn,{form:"root"}),!1),hash:t=>en(Ke(t,{keepPunct:!0},!1)),offset:t=>{let e=sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},nn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&sn[i]&&(o[i]=sn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};ln.data=ln.json;var an=ln;var cn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};var un={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var hn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(un.blue("\n ──────")),e.forEach(t=>{console.log(un.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=un.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=un.blue(" │ ")+un.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return un[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var fn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(un.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(un.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(un.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(un.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var pn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${un.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const dn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var gn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t)}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}};var wn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&Xe.hasOwnProperty(t)?e=Object.assign({},Xe[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},xn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var jn=function(t,e){let n=xn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r};var En={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:xn,splitAll:jn}}};var On=function(t,e){let n=t.concat(e),r=xn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>vn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n};var Pn=function(t,e){let n=xn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>vn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Sn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},An={union:function(t){t=_n(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)}};An.and=An.union,An.intersection=function(t){t=_n(t,this);let e=Pn(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.not=function(t){t=_n(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.difference=An.not,An.complement=function(){let t=this.all(),e=kn(t.fullPointer,this.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=On(t,[e])}),t=Sn(t,this.document),this.update(t)};var $n={methods:En,api:function(t){Object.assign(t.prototype,An)}};const Tn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Cn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Tn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Tn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Tn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t};var zn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})};var Nn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>{if(0===t.wants.length)return!0;return t.wants.filter(t=>r.has(t)).length>=t.minWant})})};var Fn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o};var Ln=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=Cn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=zn(o,e.hooks);return i=Nn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Fn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Ln(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&(console.log(t),l(a,t.unTag,n,t.safe,o)),t.chunk&&a.forEach(e=>e.chunk=t.chunk)})}}}};const qn=/ /,Dn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Gn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),qn.test(e))!function(t,e,n,r){let o=e.split(qn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Gn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nBn(t,e,n,r))};var Mn=Bn;var Un=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Wn({id:t})),e}return[Wn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Hn=t=>"[object Array]"===Object.prototype.toString.call(t),Zn=t=>(t=t||"").trim(),Kn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||In.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Rn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Wn({});return t.forEach(t=>{if((t=Wn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Qn(e=t).forEach(Wn),e);var e},Jn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Qn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},Xn=function(t){let e=Qn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Yn={text:Jn,txt:Jn,array:Xn,flat:Xn},tr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Jn(t,!0)),null):Yn.hasOwnProperty(e)?Yn[e](t):t},er=t=>{Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},nr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Zn(t),!nr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Wn({});return new g(e)}add(t,e={}){if(Hn(t))return t.forEach(t=>this.add(Zn(t),e)),this;t=Zn(t);let n=Wn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Zn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Qn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Qn(this.json)}fillDown(){var t;return t=this.json,Qn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Hn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){er(this.json);let t=Qn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return er(this.json),tr(this.json,t)}debug(){return er(this.json),tr(this.json,"debug"),this}}const rr=function(t){let e=Kn(t);return new g(e)};rr.prototype.plugin=function(t){t(this)};var or={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ir=function(t){if(or.hasOwnProperty(t.id))return or[t.id];if(or.hasOwnProperty(t.is))return or[t.is];let e=t._cache.parents.find(t=>or[t]);return or[e]};var sr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:ir(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const lr=function(t){return t?"string"==typeof t?[t]:t:[]};var ar=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=lr(t[e].children),t[e].not=lr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t};var cr={one:{setTag:Mn,unTag:Un,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=ar(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return rr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return sr(n)}}};const ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var hr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),ur(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return ur(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}};var fr=function(t){Object.assign(t.prototype,hr)};var pr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const dr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(dr.has(t)||!e.hasOwnProperty(n))return 1;if(dr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:cr,api:fr,lib:pr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var yr=function(t){let e=[],n=t.split(wr);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Lr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Vr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,qr=/['’]/,Dr=/^[a-z]\.([a-z]\.)+/i,Gr=/^[-+.][0-9]/,Br=/^'[0-9]{2}/;var Mr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Lr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Gr.test(t)?"'"===n&&Br.test(t)?(n="",e):"":(n="",e)))).replace(Vr,o=>(r=o,qr.test(o)&&/[sn]['’]$/.test(e)&&!1===qr.test(n)?(r=r.replace(qr,""),"'"):!0===Dr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Ur=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Wr=/([A-Z]\.)+[A-Z]?,?$/,Ir=/^[A-Z]\.,?$/,Rr=/[A-Z]{2,}('s|,)?$/,Qr=/([a-z]\.)+[a-z]\.?$/;var Hr=function(t){return function(t){return!0===Wr.test(t)||!0===Qr.test(t)||!0===Ir.test(t)||!0===Rr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Zr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Ur(r),r=n(r,e),r=Hr(r),t.normal=r};var Kr={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:Pr,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Nr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Tr(n),n=Ar(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Mr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{Zr(t,e)}),n})}}}};var Jr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Xr={},Yr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{Xr[e]=!0,Yr[e]="Abbreviation",void 0!==t[1]&&(Yr[e]=[Yr[e],t[1]])})});var to=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let eo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},no={};Object.keys(eo).forEach((function(t){eo[t].split("").forEach((function(e){no[e]=t}))}));const ro=/\//,oo=/[a-z]\.[a-z]/i,io=/[0-9]/;var so=function(t,e){let n=t.normal||t.text;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ro.test(n)&&!oo.test(n)&&!io.test(n)){let e=n.split(ro);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const lo=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),lo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var co=function(t){let e=0,n=0,r=t.document;for(let t=0;tuo(t,so),machine:t=>uo(t,ao),normal:t=>uo(t,Zr),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const go={safe:!0,min:3};var mo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},go,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=po(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}};var wo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=fo},lib:mo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};d.extend(H),d.extend(bn),d.extend(Ge),d.extend($n),d.extend(gr),d.plugin(yt),d.extend(ho),d.plugin(w),d.extend($t),d.extend(wo),d.extend(Et),d.extend(Vn);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 6e2fa9aac..17a275963 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),k(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e},Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>vt(e,","),hasPeriod:e=>!0===vt(e,".")&&!1===vt(e,"..."),hasExclamation:e=>vt(e,"!"),hasQuestionMark:e=>vt(e,"?")||vt(e,"¿"),hasEllipses:e=>vt(e,"..")||vt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>vt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=r-e.t),e.t=r,!0)};const Nt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=xt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==jt(e,a)){if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Gt(a))return null;if(!0!==e.optional)return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Tt(a))return null}else if(!It(a))return null}else if(!Et(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=cn.blue(" │ ")+cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${cn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var gn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},jn=function(e,t){let n=e.concat(t),r=kn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},En=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},In=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=Nn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.not=function(e){e=Nn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=jn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:An,api:function(e){Object.assign(e.prototype,Tn)}};const Dn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Dn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Dn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Vn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Bn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},zn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=On(a,t.hooks);return o=Vn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Bn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Fn=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,r){let a=t.split(Fn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nMn(e,t,n,r))};var Ln=Mn,Wn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Jn({id:e})),t}return[Jn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),_n=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Jn({});return e.forEach(e=>{if((e=Jn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Jn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Rn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:Zn,txt:Zn,array:Yn,flat:Yn},er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},tr=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},nr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!nr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Jn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Jn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){tr(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return tr(this.json),er(this.json,e)}debug(){return tr(this.json),er(this.json,"debug"),this}}const rr=function(e){let t=_n(e);return new g$1(t)};rr.prototype.plugin=function(e){e(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(e){if(ar.hasOwnProperty(e.id))return ar[e.id];if(ar.hasOwnProperty(e.is))return ar[e.is];let t=e._cache.parents.find(e=>ar[e]);return ar[t]};var ir=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:or(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sr=function(e){return e?"string"==typeof e?[e]:e:[]};var lr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sr(e[t].children),e[t].not=sr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ur={one:{setTag:Ln,unTag:Wn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=lr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return rr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ir(n)}}};const cr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),cr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return cr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},dr=function(e){Object.assign(e.prototype,hr)},pr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const mr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(mr.has(e)||!t.hasOwnProperty(n))return 1;if(mr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:ur,api:dr,lib:pr};const fr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,br=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),k(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e},Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>vt(e,","),hasPeriod:e=>!0===vt(e,".")&&!1===vt(e,"..."),hasExclamation:e=>vt(e,"!"),hasQuestionMark:e=>vt(e,"?")||vt(e,"¿"),hasEllipses:e=>vt(e,"..")||vt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>vt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=r-e.t),e.t=r,!0)};const Nt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=xt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==jt(e,a)){if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Gt(a))return null;if(!0!==e.optional)return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Tt(a))return null}else if(!It(a))return null}else if(!Et(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=cn.blue(" │ ")+cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${cn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var gn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},jn=function(e,t){let n=e.concat(t),r=kn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},En=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},In=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=Nn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.not=function(e){e=Nn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=jn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:An,api:function(e){Object.assign(e.prototype,Tn)}};const Dn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Dn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Dn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Vn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Bn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},zn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=On(a,t.hooks);return o=Vn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Bn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,a)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Fn=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,r){let a=t.split(Fn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nMn(e,t,n,r))};var Ln=Mn,Wn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Jn({id:e})),t}return[Jn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),_n=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Jn({});return e.forEach(e=>{if((e=Jn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Jn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Rn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:Zn,txt:Zn,array:Yn,flat:Yn},er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},tr=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},nr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!nr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Jn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Jn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){tr(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return tr(this.json),er(this.json,e)}debug(){return tr(this.json),er(this.json,"debug"),this}}const rr=function(e){let t=_n(e);return new g$1(t)};rr.prototype.plugin=function(e){e(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(e){if(ar.hasOwnProperty(e.id))return ar[e.id];if(ar.hasOwnProperty(e.is))return ar[e.is];let t=e._cache.parents.find(e=>ar[e]);return ar[t]};var ir=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:or(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sr=function(e){return e?"string"==typeof e?[e]:e:[]};var lr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sr(e[t].children),e[t].not=sr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ur={one:{setTag:Ln,unTag:Wn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=lr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return rr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ir(n)}}};const cr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),cr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return cr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},dr=function(e){Object.assign(e.prototype,hr)},pr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const mr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(mr.has(e)||!t.hasOwnProperty(n))return 1;if(mr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:ur,api:dr,lib:pr};const fr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,br=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var vr=function(e){let t=[],n=e.split(br);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,$r=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Sr=/^[a-z]\.([a-z]\.)+/i,Hr=/^[-+.][0-9]/,Mr=/^'[0-9]{2}/;var Lr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(zr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Hr.test(e)?"'"===n&&Mr.test(e)?(n="",t):"":(n="",t)))).replace($r,a=>(r=a,Fr.test(a)&&/[sn]['’]$/.test(t)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Sr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Wr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Jr=/([A-Z]\.)+[A-Z]?,?$/,qr=/^[A-Z]\.,?$/,Kr=/[A-Z]{2,}('s|,)?$/,Rr=/([a-z]\.)+[a-z]\.?$/;var Ur=function(e){return function(e){return!0===Jr.test(e)||!0===Rr.test(e)||!0===qr.test(e)||!0===Kr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wr(r),r=n(r,t),r=Ur(r),e.normal=r},_r={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Er,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Vr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Dr(n),n=Tr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Lr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Qr(e,t)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Yr={},Xr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Yr[t]=!0,Xr[t]="Abbreviation",void 0!==e[1]&&(Xr[t]=[Xr[t],e[1]])})});var ea=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ta={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},na={};Object.keys(ta).forEach((function(e){ta[e].split("").forEach((function(t){na[t]=e}))}));const ra=/\//,aa=/[a-z]\.[a-z]/i,oa=/[0-9]/;var ia=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ra.test(n)&&!aa.test(n)&&!oa.test(n)){let t=n.split(ra);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const sa=/^\p{Letter}+-\p{Letter}+$/u;var la=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),sa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ua=function(e){let t=0,n=0,r=e.document;for(let e=0;eca(e,ia),machine:e=>ca(e,la),normal:e=>ca(e,Qr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ma={safe:!0,min:3};var ga={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=da},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ma,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=pa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(yn),m.extend(St),m.extend(Gn),m.extend(gr),m.plugin(be),m.extend(ha),m.plugin(f),m.extend(Te),m.extend(ga),m.extend(Pe),m.extend($n);var fa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ba={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const va=36,ya="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wa=ya.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ka=function(e){if(void 0!==wa[e])return wa[e];let t=0,n=1,r=va,a=1;for(;n=0;n--,a*=va){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Pa=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=ja(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xa(ba[e]);Ta.test(e)?Object.keys(t).forEach(t=>{if(Da[t]=e,"Noun|Verb"===e){let e=Ia(t,Ca);Da[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ga[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ga[e]="Emoticon"),delete Ga[""],delete Ga.null,delete Ga[" "];const Oa="Adjective";var Va={beforeTags:{Determiner:Oa,Possessive:Oa},afterTags:{Adjective:Oa},beforeWords:{seem:Oa,seemed:Oa,seems:Oa,feel:Oa,feels:Oa,felt:Oa,appear:Oa,appears:Oa,appeared:Oa,also:Oa,over:Oa,under:Oa,too:Oa,it:Oa,but:Oa,still:Oa,really:Oa,quite:Oa,well:Oa,very:Oa,deeply:Oa,profoundly:Oa,extremely:Oa,so:Oa,badly:Oa,mostly:Oa,totally:Oa,awfully:Oa,rather:Oa,nothing:Oa,something:Oa,anything:Oa},afterWords:{too:Oa,also:Oa,or:Oa}};const Ba="Gerund";var za={beforeTags:{Adverb:Ba,Preposition:Ba,Conjunction:Ba},afterTags:{Adverb:Ba,Possessive:Ba,Person:Ba,Pronoun:Ba,Determiner:Ba,Copula:Ba,Preposition:Ba,Conjunction:Ba,Comparative:Ba},beforeWords:{been:Ba,keep:Ba,continue:Ba,stop:Ba,am:Ba,be:Ba,me:Ba,began:Ba,start:Ba,starts:Ba,started:Ba,stops:Ba,stopped:Ba,help:Ba,helps:Ba,avoid:Ba,avoids:Ba,love:Ba,loves:Ba,loved:Ba,hate:Ba,hates:Ba,hated:Ba},afterWords:{you:Ba,me:Ba,her:Ba,him:Ba,them:Ba,their:Ba,it:Ba,this:Ba,there:Ba,on:Ba,about:Ba,for:Ba}},$a={beforeTags:Object.assign({},Va.beforeTags,za.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Va.afterTags,za.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Va.beforeWords,za.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Va.afterWords,za.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fa="Singular";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa,Acronym:Fa,Noun:Fa,Adjective:Fa,PresentTense:Fa,Gerund:Fa,PastTense:Fa,Infinitive:Fa,Date:Fa},afterTags:{Value:Fa,Modal:Fa,Copula:Fa,PresentTense:Fa,PastTense:Fa,Demonym:Fa},beforeWords:{the:Fa,with:Fa,without:Fa,of:Fa,for:Fa,any:Fa,all:Fa,on:Fa,cut:Fa,cuts:Fa,save:Fa,saved:Fa,saves:Fa,make:Fa,makes:Fa,made:Fa,minus:Fa,plus:Fa,than:Fa,another:Fa,versus:Fa,neither:Fa,favorite:Fa,best:Fa,daily:Fa,weekly:Fa,linear:Fa,binary:Fa,mobile:Fa,lexical:Fa,technical:Fa,computer:Fa,scientific:Fa,formal:Fa},afterWords:{of:Fa,system:Fa,aid:Fa,method:Fa,utility:Fa,tool:Fa,reform:Fa,therapy:Fa,philosophy:Fa,room:Fa,authority:Fa,says:Fa,said:Fa,wants:Fa,wanted:Fa}};const Ha={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ma={beforeTags:Object.assign({},Va.beforeTags,Sa.beforeTags,Ha.beforeTags),afterTags:Object.assign({},Va.afterTags,Sa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Sa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Sa.afterWords)};const La={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Wa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},qa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ka={beforeTags:Object.assign({},Va.beforeTags,La),afterTags:Object.assign({},Va.afterTags,Wa),beforeWords:Object.assign({},Va.beforeWords,Ja),afterWords:Object.assign({},Va.afterWords,qa)};const Ra="Infinitive";var Ua={beforeTags:{Modal:Ra,Adverb:Ra,Negative:Ra,Plural:Ra},afterTags:{Determiner:Ra,Adverb:Ra,Possessive:Ra,Preposition:Ra},beforeWords:{i:Ra,we:Ra,you:Ra,they:Ra,to:Ra,please:Ra,will:Ra,have:Ra,had:Ra,would:Ra,could:Ra,should:Ra,do:Ra,did:Ra,does:Ra,can:Ra,must:Ra,us:Ra,me:Ra,he:Ra,she:Ra,it:Ra,being:Ra},afterWords:{the:Ra,me:Ra,you:Ra,him:Ra,her:Ra,them:Ra,it:Ra,a:Ra,an:Ra,up:Ra,down:Ra,by:Ra,out:Ra,off:Ra,under:Ra,when:Ra,all:Ra,to:Ra,because:Ra,although:Ra,before:Ra,how:Ra,otherwise:Ra,together:Ra,though:Ra,yet:Ra}};const Qa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var _a={beforeTags:Object.assign({},Va.beforeTags,Ua.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Va.afterTags,Ua.afterTags,Qa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Ua.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Ua.afterWords,{to:void 0})};const Za={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ya={},Xa={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},eo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var to={beforeTags:Object.assign({},za.beforeTags,Sa.beforeTags,Za),afterTags:Object.assign({},za.afterTags,Sa.afterTags,Ya),beforeWords:Object.assign({},za.beforeWords,Sa.beforeWords,Xa),afterWords:Object.assign({},za.afterWords,Sa.afterWords,eo)},no={beforeTags:Object.assign({},Ua.beforeTags,Sa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ua.afterTags,Sa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ua.beforeWords,Sa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ua.afterWords,Sa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ro="Person";var ao={beforeTags:{Honorific:ro,Person:ro,Preposition:ro},afterTags:{Person:ro,ProperNoun:ro,Verb:ro},ownTags:{ProperNoun:ro},beforeWords:{hi:ro,hey:ro,yo:ro,dear:ro,hello:ro},afterWords:{said:ro,says:ro,told:ro,tells:ro,feels:ro,felt:ro,seems:ro,thinks:ro,thought:ro,spends:ro,spendt:ro,plays:ro,played:ro,sing:ro,sang:ro,learn:ro,learned:ro,wants:ro,wanted:ro}};const oo="Month",io={beforeTags:{Date:oo,Value:oo},afterTags:{Date:oo,Value:oo},beforeWords:{by:oo,in:oo,on:oo,during:oo,after:oo,before:oo,between:oo,until:oo,til:oo,sometime:oo,of:oo,this:oo,next:oo,last:oo,previous:oo,following:oo},afterWords:{sometime:oo,in:oo,of:oo,until:oo,the:oo}};var so={beforeTags:Object.assign({},ao.beforeTags,io.beforeTags),afterTags:Object.assign({},ao.afterTags,io.afterTags),beforeWords:Object.assign({},ao.beforeWords,io.beforeWords),afterWords:Object.assign({},ao.afterWords,io.afterWords)};const lo={Place:"Place"},uo={Place:"Place",Abbreviation:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ho={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},po={"Adj|Gerund":$a,"Adj|Noun":Ma,"Adj|Past":Ka,"Adj|Present":_a,"Noun|Verb":no,"Noun|Gerund":to,"Person|Noun":{beforeTags:Object.assign({},Sa.beforeTags,ao.beforeTags),afterTags:Object.assign({},Sa.afterTags,ao.afterTags),beforeWords:Object.assign({},Sa.beforeWords,ao.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Sa.afterWords,ao.afterWords)},"Person|Date":so,"Person|Verb":{beforeTags:Object.assign({},ao.beforeTags,Ua.beforeTags),afterTags:Object.assign({},ao.afterTags,Ua.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ua.beforeWords),afterWords:Object.assign({},ao.afterWords,Ua.afterWords)},"Person|Place":{beforeTags:Object.assign({},lo,ao.beforeTags),afterTags:Object.assign({},uo,ao.afterTags),beforeWords:Object.assign({},co,ao.beforeWords),afterWords:Object.assign({},ho,ao.afterWords)}},mo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};po["Plural|Verb"]={beforeWords:mo(po["Noun|Verb"].beforeWords,{}),afterWords:mo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:mo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:mo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var go=po;const fo="Adjective",bo="Infinitive",vo="PresentTense",yo="Singular",wo="PastTense",ko="Adverb",Po="Plural",Ao="Actor",jo="Verb",xo="Noun",Eo="LastName",No="Modal",Io="Participle";var To=[null,null,{ea:yo,ia:xo,ic:fo,ly:ko,"'n":jo,"'t":jo},{oed:wo,ued:wo,xed:wo," so":ko,"'ll":No,"'re":"Copula",azy:fo,eer:xo,end:jo,ped:wo,ffy:fo,ify:bo,ing:"Gerund",ize:bo,ibe:bo,lar:fo,mum:fo,nes:vo,nny:fo,ous:fo,que:fo,rol:yo,sis:yo,ogy:yo,oid:yo,ian:yo,zes:vo,eld:wo,ken:Io,ven:Io,ten:Io,ect:bo,ict:bo,ign:bo,ful:fo,bal:fo},{amed:wo,aped:wo,ched:wo,lked:wo,rked:wo,reed:wo,nded:wo,mned:fo,cted:wo,dged:wo,ield:yo,akis:Eo,cede:bo,chuk:Eo,czyk:Eo,ects:vo,ends:jo,enko:Eo,ette:yo,wner:yo,fies:vo,fore:ko,gate:bo,gone:fo,ices:Po,ints:Po,ruct:bo,ines:Po,ions:Po,less:fo,llen:fo,made:fo,nsen:Eo,oses:vo,ould:No,some:fo,sson:Eo,tion:yo,tage:xo,ique:yo,tive:fo,tors:xo,vice:yo,lier:yo,fier:yo,wned:wo,gent:yo,tist:yo,pist:yo,rist:yo,mist:yo,yist:yo,vist:yo,lite:yo,site:yo,rite:yo,mite:yo,bite:yo,mate:yo,date:yo,ndal:yo,vent:yo,uist:yo,gist:yo,note:yo,cide:yo,wide:fo,vide:bo,ract:bo,duce:bo,pose:bo,eive:bo,lyze:bo,lyse:bo,iant:fo,nary:fo},{elist:yo,holic:yo,phite:yo,tized:wo,urned:wo,eased:wo,ances:Po,bound:fo,ettes:Po,fully:ko,ishes:vo,ities:Po,marek:Eo,nssen:Eo,ology:xo,osome:yo,tment:yo,ports:Po,rough:fo,tches:vo,tieth:"Ordinal",tures:Po,wards:ko,where:ko,archy:xo,pathy:xo,opoly:xo,embly:xo,phate:xo,ndent:yo,scent:yo,onist:yo,anist:yo,alist:yo,olist:yo,icist:yo,ounce:bo,iable:fo,borne:fo,gnant:fo,inant:fo,igent:fo,atory:fo,rient:yo,dient:yo},{auskas:Eo,parent:yo,cedent:yo,ionary:yo,cklist:yo,keeper:Ao,logist:Ao,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const Go="Adjective",Do="Noun",Co="Verb";var Oo=[null,null,{},{neo:Do,bio:Do,"de-":Co,"re-":Co,"un-":Co},{anti:Do,auto:Do,faux:Go,hexa:Do,kilo:Do,mono:Do,nano:Do,octa:Do,poly:Do,semi:Go,tele:Do,"pro-":Go,"mis-":Co,"dis-":Co,"pre-":Go},{anglo:Do,centi:Do,ethno:Do,ferro:Do,grand:Do,hepta:Do,hydro:Do,intro:Do,macro:Do,micro:Do,milli:Do,nitro:Do,penta:Do,quasi:Go,radio:Do,tetra:Do,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:Do}];const Vo="Adjective",Bo="Infinitive",zo="PresentTense",$o="Singular",Fo="PastTense",So="Adverb",Ho="Expression",Mo="Actor",Lo="Verb",Wo="Noun",Jo="LastName";var qo={a:[[/.[aeiou]na$/,Wo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,$o,"harmonica"],[/^([hyj]a+)+$/,Ho,"haha"]],c:[[/.[^aeiou]ic$/,Vo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fo,"rammed"],[/.[aeiou][sg]hed$/,Fo,"gushed"],[/.[aeiou]red$/,Fo,"hired"],[/.[aeiou]r?ried$/,Fo,"hurried"],[/[^aeiou]ard$/,$o,"steward"],[/[aeiou][^aeiou]id$/,Vo,""],[/.[vrl]id$/,Vo,"livid"],[/..led$/,Fo,"hurled"],[/.[iao]sed$/,Fo,""],[/[aeiou]n?[cs]ed$/,Fo,""],[/[aeiou][rl]?[mnf]ed$/,Fo,""],[/[aeiou][ns]?c?ked$/,Fo,"bunked"],[/[aeiou]gned$/,Fo],[/[aeiou][nl]?ged$/,Fo],[/.[tdbwxyz]ed$/,Fo],[/[^aeiou][aeiou][tvx]ed$/,Fo],[/.[cdflmnprstv]ied$/,Fo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,Vo,"fixable"],[/.[^aeiou]eable$/,Vo,"maleable"],[/.[ts]ive$/,Vo,"festive"],[/[a-z]-like$/,Vo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vo,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Ho,"ughh"],[/^uh[ -]?oh$/,Ho,"uhoh"],[/[a-z]-ish$/,Vo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Ho,"kkkk"]],l:[[/.[gl]ial$/,Vo,"familial"],[/.[^aeiou]ful$/,Vo,"fitful"],[/.[nrtumcd]al$/,Vo,"natal"],[/.[^aeiou][ei]al$/,Vo,"familial"]],m:[[/.[^aeiou]ium$/,$o,"magnesium"],[/[^aeiou]ism$/,$o,"schism"],[/^[hu]m+$/,Ho,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vo,"republican"],[/[^aeiou]ician$/,Mo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ho,"noooo"],[/^(yo)+$/,Ho,"yoo"],[/^wo{2,}[pt]?$/,Ho,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$o],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,Mo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vo],[/[aeiou].*ist$/,Vo],[/^[a-z]et$/,Lo]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,Lo],[/.[lstrn]us$/,$o],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,$o],[/[a-z]'s$/,Wo],[/^yes+$/,Ho]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Vo],[/.[st]ty$/,Vo],[/.[tnl]ary$/,Vo],[/.[oe]ry$/,$o],[/[rdntkbhs]ly$/,So],[/.(gg|bb|zz)ly$/,Vo],[/...lly$/,So],[/.[gk]y$/,Vo],[/[bszmp]{2}y$/,Vo],[/.[ai]my$/,Vo],[/[ea]{2}zy$/,Vo],[/.[^aeiou]ity$/,$o]]};const Ko="Verb",Ro="Noun";var Uo={leftTags:[["Adjective",Ro],["Possessive",Ro],["Determiner",Ro],["Adverb",Ko],["Pronoun",Ko],["Value",Ro],["Ordinal",Ro],["Modal",Ko],["Superlative",Ro],["Demonym",Ro],["Honorific","Person"]],leftWords:[["i",Ko],["first",Ro],["it",Ko],["there",Ko],["not",Ko],["because",Ro],["if",Ro],["but",Ro],["who",Ko],["this",Ro],["his",Ro],["when",Ro],["you",Ko],["very","Adjective"],["old",Ro],["never",Ko],["before",Ro],["a","Singular"],["the",Ro],["been",Ko]],rightTags:[["Copula",Ro],["PastTense",Ro],["Conjunction",Ro],["Modal",Ro]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["only",Ko],["him",Ko],["it",Ko],["were",Ro],["took",Ro],["himself",Ko],["went",Ro],["who",Ro],["jr","Person"]]},Qo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},_o={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Zo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Yo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Xo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ei=/^.([0-9]+)/;var ti=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ei);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ei,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ri=/^([0-9]+)/,ai=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ri);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ri,"")]}(n[0],n[1])})};var oi=function(e={}){return(e=Object.assign({},e)).rules=ai(e.rules),e.rules=ni(e.rules),e.rev&&(e.rev=ai(e.rev),e.rev=ni(e.rev)),e.exceptions=ai(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ii=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const si=oi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),li=oi(Yo),ui=oi(_o),ci=oi(Zo),hi=ii(si),di=ii(li),pi=ii(ui),mi=ii(ci),gi=oi(Qo),fi=oi(Xo);var bi={fromPast:si,fromPresent:li,fromGerund:ui,fromParticiple:ci,toPast:hi,toPresent:di,toGerund:pi,toParticiple:mi,toComparative:gi,toSuperlative:fi,fromComparative:ii(gi),fromSuperlative:ii(fi)},vi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),yi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],wi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ki[t].forEach(n=>e[n]=t),e),{});var Pi=ki,Ai=function(e){let t=e.substring(e.length-3);if(!0===Pi.hasOwnProperty(t))return Pi[t];let n=e.substring(e.length-2);return!0===Pi.hasOwnProperty(n)?Pi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ji={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var xi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ai(e)),ji.hasOwnProperty(e))c=ji[e];else if("Participle"===n)c=ti(l,i);else if("PastTense"===n)c=ti(l,r);else if("PresentTense"===n)c=ti(l,a);else{if("Gerund"!==n)return e;c=ti(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ei=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ti(i,n),PresentTense:ti(i,r),Gerund:ti(i,a),FutureTense:"will "+e},u=ti(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ni=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Ii="ically",Ti=new Set(["analyt"+Ii,"chem"+Ii,"class"+Ii,"clin"+Ii,"crit"+Ii,"ecolog"+Ii,"electr"+Ii,"empir"+Ii,"frant"+Ii,"grammat"+Ii,"ident"+Ii,"ideolog"+Ii,"log"+Ii,"mag"+Ii,"mathemat"+Ii,"mechan"+Ii,"med"+Ii,"method"+Ii,"method"+Ii,"mus"+Ii,"phys"+Ii,"phys"+Ii,"polit"+Ii,"pract"+Ii,"rad"+Ii,"satir"+Ii,"statist"+Ii,"techn"+Ii,"technolog"+Ii,"theoret"+Ii,"typ"+Ii,"vert"+Ii,"whims"+Ii]),Gi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Di=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ci={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Oi=function(e){return e.endsWith("ly")?Ti.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:Ci.hasOwnProperty(e)?Ci[e]:Ni(e,Gi)||e:null};const Vi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zi=function(e){if(Bi.hasOwnProperty(e))return Bi[e];let t=Ni(e,Vi);return t||e+"ly"};const $i=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Si=new Set(["terrible","annoying"]),Hi=function(e,t){const n=t.two.models.toSuperlative;return ti(e,n)},Mi=function(e,t){const n=t.two.models.toComparative;return ti(e,n)};var Li={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Wi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Li.hasOwnProperty(i)&&Li[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ia,nounToSingular:wi,verbToInfinitive:xi,getTense:Ai,verbConjugate:Ei,adjToSuperlative:Hi,adjToComparative:Mi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ti(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ti(e,n)},advToAdjective:Oi,adjToAdverb:zi,adjToNoun:function(e){if(Fi.hasOwnProperty(e))return Fi[e];if(Si.has(e))return null;let t=Ni(e,$i);return t||e+"ness"}}}},Ji=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const qi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ki=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=qi(n,"Infinitive","PastTense"),Object.assign(s,l),l=qi(r,"Infinitive","Verb"),Object.assign(s,l),l=qi(a,"Infinitive","Gerund"),Object.assign(s,l),l=qi(o,"Adjective","Superlative"),Object.assign(s,l),l=qi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ri={two:{models:bi}};const Ui={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Qi=function(e,t){const n={model:t,methods:Wi};let{lex:r,_multi:a}=Wi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},_i=function(e,t,n){let r=Ei(e,Ri);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Zi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Ui[o],"Noun|Verb"!==o&&"Person|Verb"!==o||_i(a,r,!1),"Adj|Present"===o&&(_i(a,r,!0),function(e,t,n){let r=Hi(e,n);t[r]=t[r]||"Superlative";let a=Mi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=xi(a,Ri,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=xi(a,Ri,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Qi(n,t)};let Yi={one:{_multiCache:{},lexicon:Ga},two:{irregularPlurals:fa,models:bi,suffixPatterns:To,prefixPatterns:Oo,endsWith:qo,neighbours:Uo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Da,clues:go,uncountable:{},orgWords:vi}};Yi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Qi(e.one.lexicon,e)).one.lexicon,e),e=Zi(e.two.switches,e),e=Ki(e),e=Ji(e)}(Yi);var Xi=Yi;const es=/^(under|over|mis|re|un|dis|semi)-?/;var ts=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(es.test(a.normal)){let e=a.normal.replace(es,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ns=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const rs={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},as=new Set(["formulas","koalas","israelis","menus"]),os=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var is=function(e){if(!e||e.length<=3)return!1;if(as.has(e))return!0;let t=e[e.length-1];return rs.hasOwnProperty(t)?rs[t].find(t=>e.endsWith(t)):"s"===t&&!os.find(t=>e.endsWith(t))};const ss=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ls=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(is(e.normal)?ns(e,"Plural","3-plural-guess"):ns(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ai(e.normal);t&&ns(e,t,"3-verb-tense-guess")}}(r)};const us=/^\p{Lu}[\p{Ll}'’]/u,cs=/[0-9]/,hs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,ps=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ms={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===us.test(o)&&!1===cs.test(o)?hs.find(e=>r.tags.has(e))?null:(ls(e,t,n),r.tags.has("Noun")||r.tags.clear(),ns(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&ps.test(o)&&!ms[r.normal]?(ns(r,"RomanNumeral","2-xvii"),!0):null};const fs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var bs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fs(r.normal,n.two.suffixPatterns);if(null!==e)return ns(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fs(r.implicit,n.two.suffixPatterns),null!==e))return ns(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const vs=/['‘’‛‵′`´]/,ys=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ns(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ps=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),As=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ps.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},js=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},xs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Es=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(As(a)||As(o))return ns(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(js(a)||js(o))return ns(n,"Year","2-tagYear-close");if(xs(e[t-2])||xs(e[t+2]))return ns(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ns(n,"Year","2-tagYear-noun")}}}return null};const Ns=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,Ts=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,Cs={I:!0,A:!0};var Os=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Is.test(n)||n.length>5||Cs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ts.test(n)&&!0!==Ds.test(n)&&!0!==Ns.test(n)&&!0!==Gs.test(n))}(r,n)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cs.hasOwnProperty(r.text)&&Ns.test(r.text)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ns(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Is.test(r.text)&&r.text.length<=6?(ns(r,"Acronym","3-titlecase-acronym"),!0):null};const Vs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var zs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vs(e[t-1],a),l=l||Vs(e[t+1],o),l=l||Bs(e[t-1],r),l=l||Bs(e[t+1],i),l)return ns(s,l,"3-[neighbour]"),ls(e,t,n),e[t].confidence=.2,!0}return null};const $s=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Fs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$s(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$s(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ss=function(e,t,n){0===e[t].tags.size&&(ns(e[t],"Noun","3-[fallback]"),ls(e,t,n),e[t].confidence=.1)};const Hs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ms=(e,t,n)=>0!==t||e[1]?null:n;var Ls={"Adj|Gerund":(e,t)=>Hs(e,t),"Adj|Noun":(e,t)=>Hs(e,t),"Adj|Past":(e,t)=>Hs(e,t),"Adj|Present":(e,t)=>Hs(e,t),"Noun|Gerund":(e,t)=>Hs(e,t),"Noun|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hs(e,t),"Person|Verb":(e,t)=>0!==t&&Hs(e,t)};const Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(under|over|mis|re|un|dis|semi)-?/,qs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ws.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ks=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ws.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Rs={tagSwitch:ts,checkSuffix:bs,checkRegex:ws,checkCase:gs,checkPrefix:ks,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ns(o,"Verb","3-[prefix]"),ns(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ns(o,"Adjective","3-[prefix]"),ns(o,"Prefix","3-[prefix]")))},checkYear:Es},Us={checkAcronym:Os,neighbours:zs,orgWords:Fs,nounFallback:Ss,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Js.test(l)&&!o[l]&&(l=l.replace(Js,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=qs(e[t+1],n.afterWords);return o=o||qs(e[t-1],n.beforeWords),o=o||Ks(e[t-1],n.beforeTags,a),o=o||Ks(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ls[o]&&(u=Ls[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Qs=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},Ys={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Xs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const dl=/'/;var pl=function(e,t){let n=e[t].normal.split(dl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},ml=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const gl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},fl={in:!0,by:!0,for:!0};var bl=(e,t)=>{let n=e[t];if(gl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===fl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const vl=/'/,yl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},wl={d:(e,t)=>pl(e,t),t:(e,t)=>ml(e,t),s:(e,t,n)=>bl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):hl(e,t)},kl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Pl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===vl.test(r[o].normal)&&([,i]=r[o].normal.split(vl));let s=null;wl.hasOwnProperty(i)&&(s=wl[i](r,o,t)),s&&(s=kl(s,e),ul(n,[a,o],s),yl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ll.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=sl},hooks:["contractionTwo"]};const Al="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",jl=["i","we","they"];let xl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Al+" #Person",tag:"Person",reason:"randy-smith"},{match:Al+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Al}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:jl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:jl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:jl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),El=null;var Nl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;El=El||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(El),e.uncache(),e}},model:{two:{matches:xl}},hooks:["postTagger"]},Il=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Tl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Il(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Gl={api:function(e){e.prototype.swap=Tl}};m.plugin(al),m.plugin(Pl),m.plugin(Nl),m.plugin(Gl);var Dl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Cl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ol={this:"Noun",then:"Pivot"};var Vl=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},Ll={compute:{chunks:function(e){const{document:t,world:n}=e;Vl(t),Bl(t),Fl(e,t,n),Hl(t),Ml(t)}},api:function(e){e.prototype.chunks=Cl,e.prototype.clauses=Dl},hooks:["chunks"]};const Wl=/'s$/;var Jl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ql=/\(/,Kl=/\)/,Rl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ql,"");let t=e[e.length-1];t.post=t.post.replace(Kl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Ql={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},_l=RegExp("("+Object.keys(Ql).join("|")+")"),Zl=RegExp("("+Object.values(Ql).join("|")+")"),Yl=function(e,t){const n=e[t].pre.match(_l)[0]||"";if(!n||!Ql[n])return null;const r=Ql[n];for(;t{e[0].pre=e[0].pre.replace(_l,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const eu=/\./g;var tu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},nu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const ru=(e,t)=>"number"==typeof t?e.eq(t):e,au=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var ou=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=au(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ru(t,e),new Adjectives(t.document,t.pointer)}};const iu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},su=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let lu=[["emojis","emoji"],["atmentions","atMentions"]];var uu=function(e){su.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=iu,lu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},cu={api:function(e){uu(e),Jl(e),Ul(e),Xl(e),ou(e),nu(e),tu(e)}};const hu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var du={case:e=>{hu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;hu(e,e=>e.text=n(e.text,t))},whitespace:e=>{hu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{hu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),mu="unicode|punctuation|whitespace|acronyms",gu="|case|contractions|parentheses|quotations|emoji|honorifics",fu={light:pu(mu),medium:pu(mu+gu),heavy:pu(mu+gu+"|possessives|adverbs|nouns|verbs")};var bu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=fu[e]),Object.keys(e).forEach(t=>{du.hasOwnProperty(t)&&du[t](this,e[t])}),this}}},vu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const yu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var wu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Pu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:ku(e,t),isSubordinate:wu(e),root:t}};const Au=e=>e.text(),ju=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),xu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Eu=function(e){let t=Pu(e);return{root:Au(t.root),number:xu(t.number),determiner:Au(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Nu={tags:!0};var Iu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Nu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Nu),e};const Tu={tags:!0};var Gu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Tu).tag("Singular","toPlural"),e};const Du=(e,t)=>"number"==typeof t?e.eq(t):e;var Cu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Du(this,e).map(Pu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Eu(t)),n},[])}isPlural(e){let t=this.filter(e=>Pu(e).isPlural);return Du(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Pu(e).adjectives;n.found&&(t=t.concat(n))}),Du(t,e)}toPlural(e){return Du(this,e).map(e=>Iu(e,Pu(e)))}toSingular(e){return Du(this,e).map(e=>{let t=Pu(e);return Gu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=vu(this);return t=Du(t,e),new Nouns(this.document,t.pointer)}}},Ou=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Vu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Bu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},$u=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Su=/^([0-9,. ]+)\/([0-9,. ]+)$/,Hu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Mu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Lu=function(e){if(!0===Hu.hasOwnProperty(e))return Hu[e];if("a"===e||"an"===e)return 1;const t=Vu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ju(n),r=Ju(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ju(n);let a=r.text("reduced");return Wu.test(a)&&(a=a.replace(Wu,""),r=r.replaceWith(a)),r=qu.hasOwnProperty(a)?qu[a]:Ju(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Ju(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ru=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Uu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Qu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],_u=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Zu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Uu[n][1]&&(e-=Uu[n][1],t.push(Uu[n][0]));return Qu[e]&&t.push(Qu[e]),t};var Yu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ru(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return _u.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Zu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ru(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},Xu=function(e){return e.numerator&&e.denominator?`${Yu({num:e.numerator})} out of ${Yu({num:e.denominator})}`:""};const ec={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var tc=e=>{let t=Yu(e).split(" "),n=t[t.length-1];return ec.hasOwnProperty(n)?t[t.length-1]=ec[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},nc=function(e){if(!e.numerator||!e.denominator)return"";let t=Yu({num:e.numerator}),n=tc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const rc=(e,t)=>"number"==typeof t?e.eq(t):e;var ac=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return rc(this,e).map(Ku)}get(e){return rc(this,e).map(Ku)}json(e){return rc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ku(t);return n.fraction=r,n},[])}toDecimal(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return rc(this,e).forEach(e=>{let t=Ku(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=nc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=Xu(t);e.replaceWith(n)}),this}toPercentage(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ou(this);return t=rc(t,e),new Fractions(this.document,t.pointer)}};const oc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ic=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+oc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+oc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+oc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+oc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${oc})`),r=e.has("("+oc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+oc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+oc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},sc=function(e){if("string"==typeof e)return{num:Lu(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Ku(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Lu(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}},lc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ru(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const uc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},cc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var hc=function(e){let t={suffix:"",prefix:e.prefix};return uc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+uc[e.prefix],t.prefix=""),cc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+cc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},dc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=hc(e);return t+tc(e)+n}if("Ordinal"===t)return e.prefix+lc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=hc(e);return t+Yu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pc=(e,t)=>"number"==typeof t?e.eq(t):e;var mc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return pc(this,e).map(sc)}get(e){return pc(this,e).map(sc).map(e=>e.num)}json(e){return pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=sc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=sc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=dc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=sc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=dc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>sc(t).num===e)}greaterThan(e){return this.filter(t=>sc(t).num>e)}lessThan(e){return this.filter(t=>sc(t).num{let r=sc(n).num;return r>e&&r{let n=sc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=sc(e).num);let t=this.map(t=>{let n=sc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=ic(this);return t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},gc={api:function(e){ac(e),mc(e)}};const fc={people:!0,emails:!0,phoneNumbers:!0,places:!0},bc=function(e={}){return!1!==(e=Object.assign({},fc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var vc={api:function(e){e.prototype.redact=bc}},yc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},wc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},kc=function(e){let t=e.clauses(),n=wc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Pc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Ac=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},jc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},xc=function(e){return e.verbs().toInfinitive(),e};const Ec=(e,t)=>"number"==typeof t?e.eq(t):e;var Nc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=kc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ec(this,e).map(e=>(kc(e),Pc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(kc(e),Ac(e)))}toFutureTense(e){return Ec(this,e).map(e=>(kc(e),e=jc(e)))}toInfinitive(e){return Ec(this,e).map(e=>(kc(e),xc(e)))}toNegative(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ec(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ec(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ec(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=yc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Ic=function(e){return e.match("#Honorific+? #Person+")},Tc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Gc="male",Dc="female",Cc={mr:Gc,mrs:Dc,miss:Dc,madam:Dc,king:Gc,queen:Dc,duke:Gc,duchess:Dc,baron:Gc,baroness:Dc,count:Gc,countess:Dc,prince:Gc,princess:Dc,sire:Gc,dame:Dc,lady:Dc,ayatullah:Gc,congressman:Gc,congresswoman:Dc,"first lady":Dc,mx:null};var Oc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Dc;if(n.has("#MaleName"))return Gc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Cc.hasOwnProperty(e))return Cc[e];if(/^her /.test(e))return Dc;if(/^his /.test(e))return Gc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Gc;if(n&&!t)return Dc}return null};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Vc(this,e).map(Tc)}json(e){return Vc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Tc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Oc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ic(this);return t=Vc(t,e),new People(this.document,t.pointer)}},zc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},$c=function(e){e.prototype.places=function(t){let n=zc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Fc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Sc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Hc=function(e){e.prototype.topics=Sc},Mc={api:function(e){Bc(e),$c(e),Fc(e),Hc(e)}},Lc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Wc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Jc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const qc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Kc=function(e){return e.match("#Negative")},Rc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Uc=function(e){let t=e.clone();t.contractions().expand();const n=Wc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:qc(t,n),negative:Kc(t),phrasal:Rc(n)}};const Qc={tense:"PresentTense"},_c={conditional:!0},Zc={tense:"FutureTense"},Yc={progressive:!0},Xc={tense:"PastTense"},eh={complete:!0,progressive:!1},th={passive:!0},nh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},rh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Qc]],["^wanted to #Infinitive$",[Xc]],["^will want to #Infinitive$",[Zc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Xc]],["^#PresentTense #Gerund$",[Qc]],["^#Infinitive #Gerund$",[Qc]],["^will #Infinitive #Gerund$",[Zc]],["^have #PastTense #Gerund$",[Xc]],["^will have #PastTense #Gerund$",[Xc]]],"simple-present":[["^#PresentTense$",[Qc]],["^#Infinitive$",[Qc]]],"simple-past":[["^#PastTense$",[Xc]]],"simple-future":[["^will #Adverb? #Infinitive",[Zc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Qc,Yc]]],"past-progressive":[["^(was|were) #Gerund$",[Xc,Yc]]],"future-progressive":[["^will be #Gerund$",[Zc,Yc]]],"present-perfect":[["^(has|have) #PastTense$",[Xc,eh]]],"past-perfect":[["^had #PastTense$",[Xc,eh]],["^had #PastTense to #Infinitive",[Xc,eh]]],"future-perfect":[["^will have #PastTense$",[Zc,eh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Xc,Yc]]],"past-perfect-progressive":[["^had been #Gerund$",[Xc,Yc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Zc,Yc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Xc,th]],["^(was|were) being (#PastTense|#Participle)",[Xc,th]],["^(had|have) been (#PastTense|#Participle)",[Xc,th]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Qc,th]],["^(is|are|am) being (#PastTense|#Participle)",[Qc,th]],["^has been (#PastTense|#Participle)",[Qc,th]]],"passive-future":[["will have been (#PastTense|#Participle)",[Zc,th,_c]],["will be being? (#PastTense|#Participle)",[Zc,th,_c]]],"present-conditional":[["would be #PastTense",[Qc,_c]]],"past-conditional":[["would have been #PastTense",[Xc,_c]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Zc]]],"auxiliary-past":[["^did #Infinitive$",[Xc,{plural:!1}]],["^used to #Infinitive$",[Xc,eh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Qc,eh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Xc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let ah=[];Object.keys(rh).map(e=>{rh[e].forEach(t=>{ah.push({name:e,match:t[0],data:nh(t[1])})})});var oh=ah,ih=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),sh(r)&&(n.remove(r),r=n.last()),sh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:lh(t,e)}};const ch=e=>e,hh=(e,t)=>{let n=uh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},dh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=uh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ph=function(e,t){let n=uh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},mh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,mh(e)),r&&e.replace(t.root,r),e},fh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),bh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},vh=function(e){return e&&e.isView?e.text("normal"):""},yh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,mh(e))};var wh=function(e){let t=Uc(e);e=e.clone().toView();const n=ih(e,t);return{root:t.root.text(),preAdverbs:bh(t.adverbs.pre),postAdverbs:bh(t.adverbs.post),auxiliary:vh(t.auxiliary),negative:t.negative.found,prefix:vh(t.prefix),infinitive:yh(t.root),grammar:n}};const kh={tags:!0};var Ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,mh(r)),i&&e.replace(r,i,kh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ah={tags:!0},jh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,mh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=uh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ah),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=jh.simple(e,t),e=jh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ah),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),n(o,e.model).Participle}},xh={infinitive:jh.simple,"simple-present":jh.simple,"simple-past":ch,"simple-future":jh.both,"present-progressive":e=>(e.replace("are","were",Ah),e.replace("(is|are|am)","was",Ah),e),"past-progressive":ch,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":jh.hasHad,"past-perfect":ch,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=fh(e)),e.remove("have"),e),"present-perfect-progressive":jh.hasHad,"past-perfect-progressive":ch,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ah),e),"passive-past":e=>(e.replace("have","had",Ah),e),"passive-present":e=>(e.replace("(is|are)","was",Ah),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ah),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":ch,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ah),e),"auxiliary-past":ch,"auxiliary-present":e=>(e.replace("(do|does)","did",Ah),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ah):(jh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":ch,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ah),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),jh.simple(e,t),fh(e),e)};var Eh=function(e,t,n){return xh.hasOwnProperty(n)?((e=xh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0},Ih=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=dh(e)),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("PresentTense"),e},Th=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("Gerund"),e},Gh={infinitive:Ih,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Ih(e,t);{let t=uh(e).subject;if(hh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Nh)}return e},"simple-past":Ih,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=dh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ih(e,t),e=e.remove("will");return e},"present-progressive":ch,"past-progressive":(e,t)=>{let n=dh(e);return e.replace("(were|was)",n,Nh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ih(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=uh(e).subject;return hh(e)||n.has("i")?((e=gh(e,t)).remove("had"),e):(e.replace("had","has",Nh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":ch,"past-perfect-progressive":e=>e.replace("had","has",Nh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=dh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Nh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":ch,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":ch,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Th(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ph(e);return e.replace(t.auxiliary,n),e}return Th(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":ch,"modal-infinitive":ch,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,mh(r)),a&&(e=e.replace(t.root,a,Nh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return hh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Nh),e.remove("will"),e}};var Dh=function(e,t,n){return Gh.hasOwnProperty(n)?((e=Gh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ch={tags:!0},Oh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,mh(r)),o&&(e=e.replace(r,o,Ch)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Vh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,mh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Ch),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Bh={infinitive:Oh,"simple-present":Oh,"simple-past":Oh,"simple-future":ch,"present-progressive":Vh,"past-progressive":Vh,"future-progressive":ch,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":ch,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":ch,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":ch,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":ch,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":ch,"modal-past":ch,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Oh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var zh=function(e,t,n){return e.has("will")||e.has("going to")?e:Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const $h={tags:!0};var Fh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,mh(a));let s=r(i,e.model).Gerund;return s&&(s=`${dh(e)} ${s}`,e.replace(a,s,$h)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Sh={tags:!0},Hh=function(e,t){let n=ph(e);return e.prepend(n+" not"),e},Mh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Lh=e=>e.has("(is|was|am|are|will|were|be)"),Wh={"simple-present":(e,t)=>!0===Lh(e)?Mh(e):(e=gh(e,t),e=Hh(e)),"simple-past":(e,t)=>!0===Lh(e)?Mh(e):((e=gh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Lh(e)?Mh(e):Hh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Sh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Hh(e)).replace("wants","want",Sh)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Wh.hasOwnProperty(n))return e=Wh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Lh(e)?Mh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const qh=(e,t)=>"number"==typeof t?e.eq(t):e;var Kh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return qh(this,e).map(Uc)}json(e,t){return qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=wh(t),n},[])}subjects(e){return qh(this,e).map(e=>(Uc(e),uh(e).subject))}adverbs(e){return qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return qh(this,e).filter(e=>!0!==uh(e).plural)}isPlural(e){return qh(this,e).filter(e=>!0===uh(e).plural)}isImperative(e){return qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Ph(e,t,n.form)})}toPresentTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Dh(e,t,n.form)})}toPastTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return zh(e,t,n.form)})}toGerund(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Fh(e,t,n.form)})}conjugate(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Ph(e.clone(),t,n.form).text("normal"),PastTense:Eh(e.clone(),t,n.form).text("normal"),PresentTense:Dh(e.clone(),t,n.form).text("normal"),FutureTense:zh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Jh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Lc(this);return t=qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ll),m.plugin(cu),m.plugin(bu),m.plugin(Cu),m.plugin(gc),m.plugin(vc),m.plugin(Nc),m.plugin(Mc),m.plugin(Kh),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index af709f309..b0afb832f 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1,2 +1,2 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||v(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),b(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const N=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},E=e=>"[object Array]"===Object.prototype.toString.call(e),x=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(N(t.update([u]).firstTerm()),k(h,u,d,r)):(N(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},D.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var C=D;var O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z;var F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return b(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}};var q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var be=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};var Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e)){return e.fullPointer.length>0}if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var ut=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>bt(e,","),hasPeriod:e=>!0===bt(e,".")&&!1===bt(e,"..."),hasExclamation:e=>bt(e,"!"),hasQuestionMark:e=>bt(e,"?")||bt(e,"¿"),hasEllipses:e=>bt(e,"..")||bt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>bt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>vt.test(e.post)||vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Nt(e,e.t).length=r-e.t}return e.t=r,!0};const xt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Nt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ct(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Nt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==jt(e,a))if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Gt(a))return null}if(!0!==e.optional)return null}else{if(!Vt(a))return null}else{if(!Vt(a))return null}else{if(!Vt(a))return null}else{if(!Tt(a))return null}else{if(!It(a))return null}else{if(!Et(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on;var ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var un={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(un.blue("\n ──────")),t.forEach(e=>{console.log(un.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=un.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=un.blue(" │ ")+un.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return un[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var hn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(un.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(un.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(un.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(un.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${un.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const pn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var mn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},wn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var kn=function(e,t){let n=wn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var Pn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:wn,splitAll:kn}}};var An=function(e,t){let n=e.concat(t),r=wn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>yn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Nn=function(e,t){let n=wn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>yn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},xn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},In={union:function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=Nn(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=jn(e.fullPointer,this.fullPointer);return t=xn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=xn(e,this.document),this.update(e)};var Tn={methods:Pn,api:function(e){Object.assign(e.prototype,In)}};const Gn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Dn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Gn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Gn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Gn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Cn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var On=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Vn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Bn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Dn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Cn(a,t.hooks);return o=On(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Vn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const $n=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Sn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),$n.test(t))!function(e,t,n,r){let a=t.split($n);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Sn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nHn(e,t,n,r))};var Mn=Hn;var Ln=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Wn({id:e})),t}return[Wn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Rn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Qn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Jn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:qn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Wn({});return e.forEach(e=>{if((e=Wn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Kn(t=e).forEach(Wn),t);var t},_n=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Kn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Zn=function(e){let t=Kn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Yn={text:_n,txt:_n,array:Zn,flat:Zn},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(_n(e,!0)),null):Yn.hasOwnProperty(t)?Yn[t](e):e},er=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},tr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Un(e),!tr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Wn({});return new g$1(t)}add(e,t={}){if(Rn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Wn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Un(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Kn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Kn(this.json)}fillDown(){var e;return e=this.json,Kn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Rn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){er(this.json);let e=Kn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return er(this.json),Xn(this.json,e)}debug(){return er(this.json),Xn(this.json,"debug"),this}}const nr=function(e){let t=Qn(e);return new g$1(t)};nr.prototype.plugin=function(e){e(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ar=function(e){if(rr.hasOwnProperty(e.id))return rr[e.id];if(rr.hasOwnProperty(e.is))return rr[e.is];let t=e._cache.parents.find(e=>rr[e]);return rr[t]};var or=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:ar(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ir=function(e){return e?"string"==typeof e?[e]:e:[]};var sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ir(e[t].children),e[t].not=ir(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var lr={one:{setTag:Mn,unTag:Ln,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=sr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return nr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return or(n)}}};const ur=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var cr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ur(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ur(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var hr=function(e){Object.assign(e.prototype,cr)};var dr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const pr=new Set(["Auxiliary","Possessive"]);var mr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(pr.has(e)||!t.hasOwnProperty(n))return 1;if(pr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:lr,api:hr,lib:dr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,fr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||v(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),b(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const N=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},E=e=>"[object Array]"===Object.prototype.toString.call(e),x=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(N(t.update([u]).firstTerm()),k(h,u,d,r)):(N(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},D.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var C=D;var O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z;var F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return b(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}};var q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var be=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};var Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e)){return e.fullPointer.length>0}if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var ut=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>bt(e,","),hasPeriod:e=>!0===bt(e,".")&&!1===bt(e,"..."),hasExclamation:e=>bt(e,"!"),hasQuestionMark:e=>bt(e,"?")||bt(e,"¿"),hasEllipses:e=>bt(e,"..")||bt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>bt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>vt.test(e.post)||vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Nt(e,e.t).length=r-e.t}return e.t=r,!0};const xt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Nt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ct(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Nt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==jt(e,a))if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Gt(a))return null}if(!0!==e.optional)return null}else{if(!Vt(a))return null}else{if(!Vt(a))return null}else{if(!Vt(a))return null}else{if(!Tt(a))return null}else{if(!It(a))return null}else{if(!Et(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on;var ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var un={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(un.blue("\n ──────")),t.forEach(e=>{console.log(un.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=un.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=un.blue(" │ ")+un.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return un[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var hn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(un.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(un.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(un.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(un.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${un.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const pn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var mn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},wn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var kn=function(e,t){let n=wn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var Pn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:wn,splitAll:kn}}};var An=function(e,t){let n=e.concat(t),r=wn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>yn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Nn=function(e,t){let n=wn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>yn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},xn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},In={union:function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=Nn(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=jn(e.fullPointer,this.fullPointer);return t=xn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=xn(e,this.document),this.update(e)};var Tn={methods:Pn,api:function(e){Object.assign(e.prototype,In)}};const Gn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Dn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Gn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Gn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Gn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Cn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var On=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Vn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Bn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Dn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Cn(a,t.hooks);return o=On(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Vn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,a)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const $n=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Sn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),$n.test(t))!function(e,t,n,r){let a=t.split($n);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Sn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nHn(e,t,n,r))};var Mn=Hn;var Ln=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Wn({id:e})),t}return[Wn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Rn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Qn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Jn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:qn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Wn({});return e.forEach(e=>{if((e=Wn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Kn(t=e).forEach(Wn),t);var t},_n=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Kn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Zn=function(e){let t=Kn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Yn={text:_n,txt:_n,array:Zn,flat:Zn},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(_n(e,!0)),null):Yn.hasOwnProperty(t)?Yn[t](e):e},er=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},tr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Un(e),!tr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Wn({});return new g$1(t)}add(e,t={}){if(Rn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Wn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Un(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Kn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Kn(this.json)}fillDown(){var e;return e=this.json,Kn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Rn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){er(this.json);let e=Kn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return er(this.json),Xn(this.json,e)}debug(){return er(this.json),Xn(this.json,"debug"),this}}const nr=function(e){let t=Qn(e);return new g$1(t)};nr.prototype.plugin=function(e){e(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ar=function(e){if(rr.hasOwnProperty(e.id))return rr[e.id];if(rr.hasOwnProperty(e.is))return rr[e.is];let t=e._cache.parents.find(e=>rr[e]);return rr[t]};var or=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:ar(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ir=function(e){return e?"string"==typeof e?[e]:e:[]};var sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ir(e[t].children),e[t].not=ir(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var lr={one:{setTag:Mn,unTag:Ln,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=sr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return nr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return or(n)}}};const ur=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var cr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ur(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ur(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var hr=function(e){Object.assign(e.prototype,cr)};var dr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const pr=new Set(["Auxiliary","Possessive"]);var mr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(pr.has(e)||!t.hasOwnProperty(n))return 1;if(pr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:lr,api:hr,lib:dr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,fr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var vr=function(e){let t=[],n=e.split(fr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Br=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,zr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,$r=/['’]/,Fr=/^[a-z]\.([a-z]\.)+/i,Sr=/^[-+.][0-9]/,Hr=/^'[0-9]{2}/;var Mr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Br,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Sr.test(e)?"'"===n&&Hr.test(e)?(n="",t):"":(n="",t)))).replace(zr,a=>(r=a,$r.test(a)&&/[sn]['’]$/.test(t)&&!1===$r.test(n)?(r=r.replace($r,""),"'"):!0===Fr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Lr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Wr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,qr=/[A-Z]{2,}('s|,)?$/,Kr=/([a-z]\.)+[a-z]\.?$/;var Rr=function(e){return function(e){return!0===Wr.test(e)||!0===Kr.test(e)||!0===Jr.test(e)||!0===qr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ur=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Lr(r),r=n(r,t),r=Rr(r),e.normal=r};var Qr={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Nr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Or);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Gr(n),n=Ir(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Mr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Ur(e,t)}),n})}}}};var _r={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},Yr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Zr[t]=!0,Yr[t]="Abbreviation",void 0!==e[1]&&(Yr[t]=[Yr[t],e[1]])})});var Xr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ea={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ta={};Object.keys(ea).forEach((function(e){ea[e].split("").forEach((function(t){ta[t]=e}))}));const na=/\//,ra=/[a-z]\.[a-z]/i,aa=/[0-9]/;var oa=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),na.test(n)&&!ra.test(n)&&!aa.test(n)){let t=n.split(na);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ia=/^\p{Letter}+-\p{Letter}+$/u;var sa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ia.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var la=function(e){let t=0,n=0,r=e.document;for(let e=0;eua(e,oa),machine:e=>ua(e,sa),normal:e=>ua(e,Ur),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const pa={safe:!0,min:3};var ma={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ha},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},pa,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=da(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(bn),m.extend(St),m.extend(Tn),m.extend(mr),m.plugin(ve),m.extend(ca),m.plugin(f),m.extend(Te),m.extend(ma),m.extend(Pe),m.extend(zn);var ga={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},fa={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const va="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=va.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ya=function(e){if(void 0!==ba[e])return ba[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var wa=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Pa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Aa(fa[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ta[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ta[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ia[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ia[e]="Emoticon"),delete Ia[""],delete Ia.null,delete Ia[" "];const Da="Adjective";var Ca={beforeTags:{Determiner:Da,Possessive:Da},afterTags:{Adjective:Da},beforeWords:{seem:Da,seemed:Da,seems:Da,feel:Da,feels:Da,felt:Da,appear:Da,appears:Da,appeared:Da,also:Da,over:Da,under:Da,too:Da,it:Da,but:Da,still:Da,really:Da,quite:Da,well:Da,very:Da,deeply:Da,profoundly:Da,extremely:Da,so:Da,badly:Da,mostly:Da,totally:Da,awfully:Da,rather:Da,nothing:Da,something:Da,anything:Da},afterWords:{too:Da,also:Da,or:Da}};const Oa="Gerund";var Va={beforeTags:{Adverb:Oa,Preposition:Oa,Conjunction:Oa},afterTags:{Adverb:Oa,Possessive:Oa,Person:Oa,Pronoun:Oa,Determiner:Oa,Copula:Oa,Preposition:Oa,Conjunction:Oa,Comparative:Oa},beforeWords:{been:Oa,keep:Oa,continue:Oa,stop:Oa,am:Oa,be:Oa,me:Oa,began:Oa,start:Oa,starts:Oa,started:Oa,stops:Oa,stopped:Oa,help:Oa,helps:Oa,avoid:Oa,avoids:Oa,love:Oa,loves:Oa,loved:Oa,hate:Oa,hates:Oa,hated:Oa},afterWords:{you:Oa,me:Oa,her:Oa,him:Oa,them:Oa,their:Oa,it:Oa,this:Oa,there:Oa,on:Oa,about:Oa,for:Oa}};var Ba={beforeTags:Object.assign({},Ca.beforeTags,Va.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Va.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Va.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Va.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const za="Singular";var $a={beforeTags:{Determiner:za,Possessive:za,Acronym:za,Noun:za,Adjective:za,PresentTense:za,Gerund:za,PastTense:za,Infinitive:za,Date:za},afterTags:{Value:za,Modal:za,Copula:za,PresentTense:za,PastTense:za,Demonym:za},beforeWords:{the:za,with:za,without:za,of:za,for:za,any:za,all:za,on:za,cut:za,cuts:za,save:za,saved:za,saves:za,make:za,makes:za,made:za,minus:za,plus:za,than:za,another:za,versus:za,neither:za,favorite:za,best:za,daily:za,weekly:za,linear:za,binary:za,mobile:za,lexical:za,technical:za,computer:za,scientific:za,formal:za},afterWords:{of:za,system:za,aid:za,method:za,utility:za,tool:za,reform:za,therapy:za,philosophy:za,room:za,authority:za,says:za,said:za,wants:za,wanted:za}};const Fa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Sa={beforeTags:Object.assign({},Ca.beforeTags,$a.beforeTags,Fa.beforeTags),afterTags:Object.assign({},Ca.afterTags,$a.afterTags),beforeWords:Object.assign({},Ca.beforeWords,$a.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,$a.afterWords)};const Ha={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ma={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},La={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Wa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ja={beforeTags:Object.assign({},Ca.beforeTags,Ha),afterTags:Object.assign({},Ca.afterTags,Ma),beforeWords:Object.assign({},Ca.beforeWords,La),afterWords:Object.assign({},Ca.afterWords,Wa)};const qa="Infinitive";var Ka={beforeTags:{Modal:qa,Adverb:qa,Negative:qa,Plural:qa},afterTags:{Determiner:qa,Adverb:qa,Possessive:qa,Preposition:qa},beforeWords:{i:qa,we:qa,you:qa,they:qa,to:qa,please:qa,will:qa,have:qa,had:qa,would:qa,could:qa,should:qa,do:qa,did:qa,does:qa,can:qa,must:qa,us:qa,me:qa,he:qa,she:qa,it:qa,being:qa},afterWords:{the:qa,me:qa,you:qa,him:qa,her:qa,them:qa,it:qa,a:qa,an:qa,up:qa,down:qa,by:qa,out:qa,off:qa,under:qa,when:qa,all:qa,to:qa,because:qa,although:qa,before:qa,how:qa,otherwise:qa,together:qa,though:qa,yet:qa}};const Ra={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ua={beforeTags:Object.assign({},Ca.beforeTags,Ka.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,Ka.afterTags,Ra.afterTags),beforeWords:Object.assign({},Ca.beforeWords,Ka.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,Ka.afterWords,{to:void 0})};const Qa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},_a={},Za={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Ya={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xa={beforeTags:Object.assign({},Va.beforeTags,$a.beforeTags,Qa),afterTags:Object.assign({},Va.afterTags,$a.afterTags,_a),beforeWords:Object.assign({},Va.beforeWords,$a.beforeWords,Za),afterWords:Object.assign({},Va.afterWords,$a.afterWords,Ya)};var eo={beforeTags:Object.assign({},Ka.beforeTags,$a.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ka.afterTags,$a.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ka.beforeWords,$a.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ka.afterWords,$a.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const to="Person";var no={beforeTags:{Honorific:to,Person:to,Preposition:to},afterTags:{Person:to,ProperNoun:to,Verb:to},ownTags:{ProperNoun:to},beforeWords:{hi:to,hey:to,yo:to,dear:to,hello:to},afterWords:{said:to,says:to,told:to,tells:to,feels:to,felt:to,seems:to,thinks:to,thought:to,spends:to,spendt:to,plays:to,played:to,sing:to,sang:to,learn:to,learned:to,wants:to,wanted:to}};const ro="Month",ao={beforeTags:{Date:ro,Value:ro},afterTags:{Date:ro,Value:ro},beforeWords:{by:ro,in:ro,on:ro,during:ro,after:ro,before:ro,between:ro,until:ro,til:ro,sometime:ro,of:ro,this:ro,next:ro,last:ro,previous:ro,following:ro},afterWords:{sometime:ro,in:ro,of:ro,until:ro,the:ro}};var oo={beforeTags:Object.assign({},no.beforeTags,ao.beforeTags),afterTags:Object.assign({},no.afterTags,ao.afterTags),beforeWords:Object.assign({},no.beforeWords,ao.beforeWords),afterWords:Object.assign({},no.afterWords,ao.afterWords)};const io={Place:"Place"},so={Place:"Place",Abbreviation:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const co={"Adj|Gerund":Ba,"Adj|Noun":Sa,"Adj|Past":Ja,"Adj|Present":Ua,"Noun|Verb":eo,"Noun|Gerund":Xa,"Person|Noun":{beforeTags:Object.assign({},$a.beforeTags,no.beforeTags),afterTags:Object.assign({},$a.afterTags,no.afterTags),beforeWords:Object.assign({},$a.beforeWords,no.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$a.afterWords,no.afterWords)},"Person|Date":oo,"Person|Verb":{beforeTags:Object.assign({},no.beforeTags,Ka.beforeTags),afterTags:Object.assign({},no.afterTags,Ka.afterTags),beforeWords:Object.assign({},no.beforeWords,Ka.beforeWords),afterWords:Object.assign({},no.afterWords,Ka.afterWords)},"Person|Place":{beforeTags:Object.assign({},io,no.beforeTags),afterTags:Object.assign({},so,no.afterTags),beforeWords:Object.assign({},lo,no.beforeWords),afterWords:Object.assign({},uo,no.afterWords)}},ho=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};co["Plural|Verb"]={beforeWords:ho(co["Noun|Verb"].beforeWords,{}),afterWords:ho(co["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:ho(co["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:ho(co["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var po=co;const mo="Adjective",go="Infinitive",fo="PresentTense",vo="Singular",bo="PastTense",yo="Adverb",wo="Plural",ko="Verb",Po="LastName",Ao="Participle";var jo=[null,null,{ea:vo,ia:"Noun",ic:mo,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":"Modal","'re":"Copula",azy:mo,eer:"Noun",end:ko,ped:bo,ffy:mo,ify:go,ing:"Gerund",ize:go,ibe:go,lar:mo,mum:mo,nes:fo,nny:mo,ous:mo,que:mo,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:fo,eld:bo,ken:Ao,ven:Ao,ten:Ao,ect:go,ict:go,ign:go,ful:mo,bal:mo},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:mo,cted:bo,dged:bo,ield:vo,akis:Po,cede:go,chuk:Po,czyk:Po,ects:fo,ends:ko,enko:Po,ette:vo,wner:vo,fies:fo,fore:yo,gate:go,gone:mo,ices:wo,ints:wo,ruct:go,ines:wo,ions:wo,less:mo,llen:mo,made:mo,nsen:Po,oses:fo,ould:"Modal",some:mo,sson:Po,tion:vo,tage:"Noun",ique:vo,tive:mo,tors:"Noun",vice:vo,lier:vo,fier:vo,wned:bo,gent:vo,tist:vo,pist:vo,rist:vo,mist:vo,yist:vo,vist:vo,lite:vo,site:vo,rite:vo,mite:vo,bite:vo,mate:vo,date:vo,ndal:vo,vent:vo,uist:vo,gist:vo,note:vo,cide:vo,wide:mo,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:mo,nary:mo},{elist:vo,holic:vo,phite:vo,tized:bo,urned:bo,eased:bo,ances:wo,bound:mo,ettes:wo,fully:yo,ishes:fo,ities:wo,marek:Po,nssen:Po,ology:"Noun",osome:vo,tment:vo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:yo,where:yo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:go,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:vo,dient:vo},{auskas:Po,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Po,borough:"Place",sdottir:Po}];const No="Adjective";var Eo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:No,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:No,tele:"Noun","pro-":No,"mis-":"Verb","dis-":"Verb","pre-":No},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:No,radio:"Noun",tetra:"Noun","omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:"Noun"}];const xo="Adjective",Io="Infinitive",To="PresentTense",Go="Singular",Do="PastTense",Co="Expression",Oo="LastName";var Vo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Oo],[/.[^aeiou]ica$/,Go,"harmonica"],[/^([hyj]a+)+$/,Co,"haha"]],c:[[/.[^aeiou]ic$/,xo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Do,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Do,"rammed"],[/.[aeiou][sg]hed$/,Do,"gushed"],[/.[aeiou]red$/,Do,"hired"],[/.[aeiou]r?ried$/,Do,"hurried"],[/[^aeiou]ard$/,Go,"steward"],[/[aeiou][^aeiou]id$/,xo,""],[/.[vrl]id$/,xo,"livid"],[/..led$/,Do,"hurled"],[/.[iao]sed$/,Do,""],[/[aeiou]n?[cs]ed$/,Do,""],[/[aeiou][rl]?[mnf]ed$/,Do,""],[/[aeiou][ns]?c?ked$/,Do,"bunked"],[/[aeiou]gned$/,Do],[/[aeiou][nl]?ged$/,Do],[/.[tdbwxyz]ed$/,Do],[/[^aeiou][aeiou][tvx]ed$/,Do],[/.[cdflmnprstv]ied$/,Do,"emptied"]],e:[[/.[lnr]ize$/,Io,"antagonize"],[/.[^aeiou]ise$/,Io,"antagonise"],[/.[aeiou]te$/,Io,"bite"],[/.[^aeiou][ai]ble$/,xo,"fixable"],[/.[^aeiou]eable$/,xo,"maleable"],[/.[ts]ive$/,xo,"festive"],[/[a-z]-like$/,xo,"woman-like"]],h:[[/.[^aeiouf]ish$/,xo,"cornish"],[/.v[iy]ch$/,Oo,"..ovich"],[/^ug?h+$/,Co,"ughh"],[/^uh[ -]?oh$/,Co,"uhoh"],[/[a-z]-ish$/,xo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Oo,"polish-male"]],k:[[/^(k){2}$/,Co,"kkkk"]],l:[[/.[gl]ial$/,xo,"familial"],[/.[^aeiou]ful$/,xo,"fitful"],[/.[nrtumcd]al$/,xo,"natal"],[/.[^aeiou][ei]al$/,xo,"familial"]],m:[[/.[^aeiou]ium$/,Go,"magnesium"],[/[^aeiou]ism$/,Go,"schism"],[/^[hu]m+$/,Co,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,xo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Co,"noooo"],[/^(yo)+$/,Co,"yoo"],[/^wo{2,}[pt]?$/,Co,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Go],[/[^i]fer$/,Io],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,xo],[/[aeiou].*ist$/,xo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,To],[/.[rln]ates$/,To],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Go],[/.[aeiou]sks$/,To],[/.[aeiou]kes$/,To],[/[aeiou][^aeiou]is$/,Go],[/[a-z]'s$/,"Noun"],[/^yes+$/,Co]],v:[[/.[^aeiou][ai][kln]ov$/,Oo]],y:[[/.[cts]hy$/,xo],[/.[st]ty$/,xo],[/.[tnl]ary$/,xo],[/.[oe]ry$/,Go],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,xo],[/...lly$/,"Adverb"],[/.[gk]y$/,xo],[/[bszmp]{2}y$/,xo],[/.[ai]my$/,xo],[/[ea]{2}zy$/,xo],[/.[^aeiou]ity$/,Go]]};const Bo="Verb",zo="Noun";var $o={leftTags:[["Adjective",zo],["Possessive",zo],["Determiner",zo],["Adverb",Bo],["Pronoun",Bo],["Value",zo],["Ordinal",zo],["Modal",Bo],["Superlative",zo],["Demonym",zo],["Honorific","Person"]],leftWords:[["i",Bo],["first",zo],["it",Bo],["there",Bo],["not",Bo],["because",zo],["if",zo],["but",zo],["who",Bo],["this",zo],["his",zo],["when",zo],["you",Bo],["very","Adjective"],["old",zo],["never",Bo],["before",zo],["a","Singular"],["the",zo],["been",Bo]],rightTags:[["Copula",zo],["PastTense",zo],["Conjunction",zo],["Modal",zo]],rightWords:[["there",Bo],["me",Bo],["man","Adjective"],["only",Bo],["him",Bo],["it",Bo],["were",zo],["took",zo],["himself",Bo],["went",zo],["who",zo],["jr","Person"]]},Fo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},So={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ho={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Mo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Lo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Wo=/^.([0-9]+)/;var Jo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Wo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Wo,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},Ko=/^([0-9]+)/,Ro=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Ko);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Ko,"")]}(n[0],n[1])})};var Uo=function(e={}){return(e=Object.assign({},e)).rules=Ro(e.rules),e.rules=qo(e.rules),e.rev&&(e.rev=Ro(e.rev),e.rev=qo(e.rev)),e.exceptions=Ro(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Qo=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const _o=Uo({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),Zo=Uo(Mo),Yo=Uo(So),Xo=Uo(Ho),ei=Qo(_o),ti=Qo(Zo),ni=Qo(Yo),ri=Qo(Xo),ai=Uo(Fo),oi=Uo(Lo);var ii={fromPast:_o,fromPresent:Zo,fromGerund:Yo,fromParticiple:Xo,toPast:ei,toPresent:ti,toGerund:ni,toParticiple:ri,toComparative:ai,toSuperlative:oi,fromComparative:Qo(ai),fromSuperlative:Qo(oi)},si=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),li=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ui=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ci[t].forEach(n=>e[n]=t),e),{});var hi=ci;var di=function(e){let t=e.substring(e.length-3);if(!0===hi.hasOwnProperty(t))return hi[t];let n=e.substring(e.length-2);return!0===hi.hasOwnProperty(n)?hi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const pi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var mi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=di(e)),pi.hasOwnProperty(e))c=pi[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,r);else if("PresentTense"===n)c=Jo(l,a);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var gi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Jo(i,n),PresentTense:Jo(i,r),Gerund:Jo(i,a),FutureTense:"will "+e},u=Jo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var fi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const vi="ically",bi=new Set(["analyt"+vi,"chem"+vi,"class"+vi,"clin"+vi,"crit"+vi,"ecolog"+vi,"electr"+vi,"empir"+vi,"frant"+vi,"grammat"+vi,"ident"+vi,"ideolog"+vi,"log"+vi,"mag"+vi,"mathemat"+vi,"mechan"+vi,"med"+vi,"method"+vi,"method"+vi,"mus"+vi,"phys"+vi,"phys"+vi,"polit"+vi,"pract"+vi,"rad"+vi,"satir"+vi,"statist"+vi,"techn"+vi,"technolog"+vi,"theoret"+vi,"typ"+vi,"vert"+vi,"whims"+vi]),yi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],wi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),ki={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Pi=function(e){return e.endsWith("ly")?bi.has(e)?e.replace(/ically/,"ical"):wi.has(e)?null:ki.hasOwnProperty(e)?ki[e]:fi(e,yi)||e:null};const Ai=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ji={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ni=function(e){if(ji.hasOwnProperty(e))return ji[e];let t=fi(e,Ai);return t||e+"ly"};const Ei=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],xi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ii=new Set(["terrible","annoying"]);const Ti=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Gi=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Di={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ci={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Di.hasOwnProperty(i)&&Di[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ea,nounToSingular:ui,verbToInfinitive:mi,getTense:di,verbConjugate:gi,adjToSuperlative:Ti,adjToComparative:Gi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Jo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Jo(e,n)},advToAdjective:Pi,adjToAdverb:Ni,adjToNoun:function(e){if(xi.hasOwnProperty(e))return xi[e];if(Ii.has(e))return null;let t=fi(e,Ei);return t||e+"ness"}}}};var Oi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Vi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Bi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Vi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Vi(r,"Infinitive","Verb"),Object.assign(s,l),l=Vi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Vi(o,"Adjective","Superlative"),Object.assign(s,l),l=Vi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let zi={two:{models:ii}};const $i={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Fi=function(e,t){const n={model:t,methods:Ci};let{lex:r,_multi:a}=Ci.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Si=function(e,t,n){let r=gi(e,zi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Hi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=$i[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Si(a,r,!1),"Adj|Present"===o&&(Si(a,r,!0),function(e,t,n){let r=Ti(e,n);t[r]=t[r]||"Superlative";let a=Gi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=mi(a,zi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=mi(a,zi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Fi(n,t)};let Mi={one:{_multiCache:{},lexicon:Ia},two:{irregularPlurals:ga,models:ii,suffixPatterns:jo,prefixPatterns:Eo,endsWith:Vo,neighbours:$o,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Ta,clues:po,uncountable:{},orgWords:si}};Mi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Fi(e.one.lexicon,e)).one.lexicon,e),e=Hi(e.two.switches,e),e=Bi(e),e=Oi(e)}(Mi);var Li=Mi;const Wi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(Wi.test(a.normal)){let e=a.normal.replace(Wi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var qi=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const Ki={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ri=new Set(["formulas","koalas","israelis","menus"]),Ui=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var Qi=function(e){if(!e||e.length<=3)return!1;if(Ri.has(e))return!0;let t=e[e.length-1];return Ki.hasOwnProperty(t)?Ki[t].find(t=>e.endsWith(t)):"s"===t&&!Ui.find(t=>e.endsWith(t))};const _i=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Zi=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Qi(e.normal)?qi(e,"Plural","3-plural-guess"):qi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=di(e.normal);t&&qi(e,t,"3-verb-tense-guess")}}(r)};const Yi=/^\p{Lu}[\p{Ll}'’]/u,Xi=/[0-9]/,es=["Date","Month","WeekDay","Unit"],ts=/^[IVXLCDM]{2,}$/,ns=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,rs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var as=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Yi.test(o)&&!1===Xi.test(o)?es.find(e=>r.tags.has(e))?null:(Zi(e,t,n),r.tags.has("Noun")||r.tags.clear(),qi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ts.test(o)&&ns.test(o)&&!rs[r.normal]?(qi(r,"RomanNumeral","2-xvii"),!0):null};const os=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var is=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=os(r.normal,n.two.suffixPatterns);if(null!==e)return qi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=os(r.implicit,n.two.suffixPatterns),null!==e))return qi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const ss=/['‘’‛‵′`´]/,ls=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return qi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const hs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),ds=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!hs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ps=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ms=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var gs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(ds(a)||ds(o))return qi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ps(a)||ps(o))return qi(n,"Year","2-tagYear-close");if(ms(e[t-2])||ms(e[t+2]))return qi(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return qi(n,"Year","2-tagYear-noun")}}}return null};const fs=/^[A-Z]('s|,)?$/,vs=/^[A-Z-]+$/,bs=/([A-Z]\.)+[A-Z]?,?$/,ys=/[A-Z]{2,}('s|,)?$/,ws=/([a-z]\.)+[a-z]\.?$/,ks={I:!0,A:!0};var Ps=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===vs.test(n)||n.length>5||ks.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==bs.test(n)&&!0!==ws.test(n)&&!0!==fs.test(n)&&!0!==ys.test(n))}(r,n)?(r.tags.clear(),qi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!ks.hasOwnProperty(r.text)&&fs.test(r.text)?(r.tags.clear(),qi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(qi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&vs.test(r.text)&&r.text.length<=6?(qi(r,"Acronym","3-titlecase-acronym"),!0):null};const As=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},js=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ns=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||As(e[t-1],a),l=l||As(e[t+1],o),l=l||js(e[t-1],r),l=l||js(e[t+1],i),l)return qi(s,l,"3-[neighbour]"),Zi(e,t,n),e[t].confidence=.2,!0}return null};const Es=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var xs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Es(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Es(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Is=function(e,t,n){0===e[t].tags.size&&(qi(e[t],"Noun","3-[fallback]"),Zi(e,t,n),e[t].confidence=.1)};const Ts=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Gs=(e,t,n)=>0!==t||e[1]?null:n;var Ds={"Adj|Gerund":(e,t)=>Ts(e,t),"Adj|Noun":(e,t)=>Ts(e,t),"Adj|Past":(e,t)=>Ts(e,t),"Adj|Present":(e,t)=>Ts(e,t),"Noun|Gerund":(e,t)=>Ts(e,t),"Noun|Verb":(e,t)=>Ts(e,t)||Gs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ts(e,t)||Gs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ts(e,t),"Person|Verb":(e,t)=>0!==t&&Ts(e,t)};const Cs="undefined"!=typeof process&&process.env?process.env:self.env||{},Os=/^(under|over|mis|re|un|dis|semi)-?/,Vs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Cs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Bs=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Cs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const zs={tagSwitch:Ji,checkSuffix:is,checkRegex:us,checkCase:as,checkPrefix:cs,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(qi(o,"Verb","3-[prefix]"),qi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(qi(o,"Adjective","3-[prefix]"),qi(o,"Prefix","3-[prefix]")))},checkYear:gs},$s={checkAcronym:Ps,neighbours:Ns,orgWords:xs,nounFallback:Is,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Os.test(l)&&!o[l]&&(l=l.replace(Os,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Vs(e[t+1],n.afterWords);return o=o||Vs(e[t-1],n.beforeWords),o=o||Bs(e[t-1],n.beforeTags,a),o=o||Bs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ds[o]&&(u=Ds[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Cs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Fs=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Ms={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Ls={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Xs=/'/;var el=function(e,t){let n=e[t].normal.split(Xs)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const tl=/'/;var nl=function(e,t){let n=e[t].normal.split(tl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var rl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const al={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ol={in:!0,by:!0,for:!0};var il=(e,t)=>{let n=e[t];if(al.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ol[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const sl=/'/,ll=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},ul={d:(e,t)=>nl(e,t),t:(e,t)=>rl(e,t),s:(e,t,n)=>il(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):el(e,t)},cl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var hl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===sl.test(r[o].normal)&&([,i]=r[o].normal.split(sl));let s=null;ul.hasOwnProperty(i)&&(s=ul[i](r,o,t)),s&&(s=cl(s,e),Ys(n,[a,o],s),ll(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=Zs.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=_s},hooks:["contractionTwo"]};const dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const pl=["i","we","they"];let ml=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:dl+" #Person",tag:"Person",reason:"randy-smith"},{match:dl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${dl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:pl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:pl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:pl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let gl=null;var fl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;gl=gl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(gl),e.uncache(),e}},model:{two:{matches:ml}},hooks:["postTagger"]};var vl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var bl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?vl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var yl={api:function(e){e.prototype.swap=bl}};m.plugin(Rs),m.plugin(hl),m.plugin(fl),m.plugin(yl);var wl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var kl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Pl={this:"Noun",then:"Pivot"};var Al=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Dl={compute:{chunks:function(e){const{document:t,world:n}=e;Al(t),jl(t),xl(e,t,n),Tl(t),Gl(t)}},api:function(e){e.prototype.chunks=kl,e.prototype.clauses=wl},hooks:["chunks"]};const Cl=/'s$/;var Ol=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Cl,""),e.normal=e.normal.replace(Cl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Vl=/\(/,Bl=/\)/,zl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Vl,"");let t=e[e.length-1];t.post=t.post.replace(Bl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Fl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Sl=RegExp("("+Object.keys(Fl).join("|")+")"),Hl=RegExp("("+Object.values(Fl).join("|")+")"),Ml=function(e,t){const n=e[t].pre.match(Sl)[0]||"";if(!n||!Fl[n])return null;const r=Fl[n];for(;t{e[0].pre=e[0].pre.replace(Sl,"");let t=e[e.length-1];t.post=t.post.replace(Hl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Wl=/\./g;var Jl=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var ql=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Kl=(e,t)=>"number"==typeof t?e.eq(t):e,Rl=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ul=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=Rl(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Kl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Kl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Kl(t,e),new Adjectives(t.document,t.pointer)}};const Ql=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},_l=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Zl=[["emojis","emoji"],["atmentions","atMentions"]];var Yl=function(e){_l.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=Ql,Zl.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Xl={api:function(e){Yl(e),Ol(e),$l(e),Ll(e),Ul(e),ql(e),Jl(e)}};const eu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var tu={case:e=>{eu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;eu(e,e=>e.text=n(e.text,t))},whitespace:e=>{eu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{eu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const nu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),ru="unicode|punctuation|whitespace|acronyms",au="|case|contractions|parentheses|quotations|emoji|honorifics",ou={light:nu(ru),medium:nu(ru+au),heavy:nu(ru+au+"|possessives|adverbs|nouns|verbs")};var iu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ou[e]),Object.keys(e).forEach(t=>{tu.hasOwnProperty(t)&&tu[t](this,e[t])}),this}}};var su=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const lu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var uu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var hu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:cu(e,t),isSubordinate:uu(e),root:t}};const du=e=>e.text(),pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),mu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var gu=function(e){let t=hu(e);return{root:du(t.root),number:mu(t.number),determiner:du(t.determiner),adjectives:pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const fu={tags:!0};var vu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,fu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",fu),e};const bu={tags:!0};var yu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,bu).tag("Singular","toPlural"),e};const wu=(e,t)=>"number"==typeof t?e.eq(t):e;var ku={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return wu(this,e).map(hu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=gu(t)),n},[])}isPlural(e){let t=this.filter(e=>hu(e).isPlural);return wu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=hu(e).adjectives;n.found&&(t=t.concat(n))}),wu(t,e)}toPlural(e){return wu(this,e).map(e=>vu(e,hu(e)))}toSingular(e){return wu(this,e).map(e=>{let t=hu(e);return yu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=su(this);return t=wu(t,e),new Nouns(this.document,t.pointer)}}};var Pu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Au=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(ju.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(ju.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(ju.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Eu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Iu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Tu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Gu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Du=function(e){if(!0===Tu.hasOwnProperty(e))return Tu[e];if("a"===e||"an"===e)return 1;const t=Au(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ou(n),r=Ou(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ou(n);let a=r.text("reduced");return Cu.test(a)&&(a=a.replace(Cu,""),r=r.replaceWith(a)),r=Vu.hasOwnProperty(a)?Vu[a]:Ou(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Ou(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var zu=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const $u=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Fu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Su=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Hu=function(e){let t=[];if(e>100)return t;for(let n=0;n<$u.length;n++)e>=$u[n][1]&&(e-=$u[n][1],t.push($u[n][0]));return Fu[e]&&t.push(Fu[e]),t};var Mu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=zu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Su.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Hu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=zu(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var Lu=function(e){if(!e.numerator||!e.denominator)return"";return`${Mu({num:e.numerator})} out of ${Mu({num:e.denominator})}`};const Wu={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ju=e=>{let t=Mu(e).split(" "),n=t[t.length-1];return Wu.hasOwnProperty(n)?t[t.length-1]=Wu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var qu=function(e){if(!e.numerator||!e.denominator)return"";let t=Mu({num:e.numerator}),n=Ju({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Ku=(e,t)=>"number"==typeof t?e.eq(t):e;var Ru=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Ku(this,e).map(Bu)}get(e){return Ku(this,e).map(Bu)}json(e){return Ku(this,e).map(t=>{let n=t.toView().json(e)[0],r=Bu(t);return n.fraction=r,n},[])}toDecimal(e){return Ku(this,e).forEach(e=>{let{decimal:t}=Bu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Ku(this,e).forEach(e=>{let t=Bu(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return Ku(this,e).forEach(e=>{let t=Bu(e),n=qu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Ku(this,e).forEach(e=>{let t=Bu(e),n=Lu(t);e.replaceWith(n)}),this}toPercentage(e){return Ku(this,e).forEach(e=>{let{decimal:t}=Bu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Pu(this);return t=Ku(t,e),new Fractions(this.document,t.pointer)}};const Uu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Qu=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Uu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Uu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Uu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Uu+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Uu})`),r=e.has("("+Uu+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Uu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Uu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var _u=function(e){if("string"==typeof e)return{num:Du(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Bu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Du(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}};var Zu=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=zu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Yu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Xu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var ec=function(e){let t={suffix:"",prefix:e.prefix};return Yu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Yu[e.prefix],t.prefix=""),Xu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Xu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var tc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ec(e);return t+Ju(e)+n}if("Ordinal"===t)return e.prefix+Zu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=ec(e);return t+Mu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return nc(this,e).map(_u)}get(e){return nc(this,e).map(_u).map(e=>e.num)}json(e){return nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=_u(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=_u(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=tc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=_u(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=tc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=_u(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=tc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=_u(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=tc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=_u(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=tc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>_u(t).num===e)}greaterThan(e){return this.filter(t=>_u(t).num>e)}lessThan(e){return this.filter(t=>_u(t).num{let r=_u(n).num;return r>e&&r{let n=_u(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=tc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=_u(e).num);let t=this.map(t=>{let n=_u(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=tc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Qu(this);return t=nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Qu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Qu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var ac={api:function(e){Ru(e),rc(e)}};const oc={people:!0,emails:!0,phoneNumbers:!0,places:!0},ic=function(e={}){return!1!==(e=Object.assign({},oc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var sc={api:function(e){e.prototype.redact=ic}};var lc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var uc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var cc=function(e){let t=e.clauses(),n=uc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var hc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var pc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var mc=function(e){return e.verbs().toInfinitive(),e};const gc=(e,t)=>"number"==typeof t?e.eq(t):e;var fc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=cc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return gc(this,e).map(e=>(cc(e),hc(e)))}toPresentTense(e){return gc(this,e).map(e=>(cc(e),dc(e)))}toFutureTense(e){return gc(this,e).map(e=>(cc(e),e=pc(e)))}toInfinitive(e){return gc(this,e).map(e=>(cc(e),mc(e)))}toNegative(e){return gc(this,e).map(e=>(cc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return gc(this,e).map(e=>(cc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return gc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return gc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=gc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=lc(this);return gc(t,e)}};Object.assign(e.prototype,t)}};var vc=function(e){return e.match("#Honorific+? #Person+")};var bc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const yc="male",wc="female",kc={mr:yc,mrs:wc,miss:wc,madam:wc,king:yc,queen:wc,duke:yc,duchess:wc,baron:yc,baroness:wc,count:yc,countess:wc,prince:yc,princess:wc,sire:yc,dame:wc,lady:wc,ayatullah:yc,congressman:yc,congresswoman:wc,"first lady":wc,mx:null};var Pc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return wc;if(n.has("#MaleName"))return yc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),kc.hasOwnProperty(e))return kc[e];if(/^her /.test(e))return wc;if(/^his /.test(e))return yc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return yc;if(n&&!t)return wc}return null};const Ac=(e,t)=>"number"==typeof t?e.eq(t):e;var jc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Ac(this,e).map(bc)}json(e){return Ac(this,e).map(t=>{let n=t.toView().json(e)[0],r=bc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Pc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=vc(this);return t=Ac(t,e),new People(this.document,t.pointer)}};var Nc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var Ec=function(e){e.prototype.places=function(t){let n=Nc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var xc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Ic=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Tc=function(e){e.prototype.topics=Ic};var Gc={api:function(e){jc(e),Ec(e),xc(e),Tc(e)}};var Dc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Cc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Oc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Vc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Bc=function(e){return e.match("#Negative")},zc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var $c=function(e){let t=e.clone();t.contractions().expand();const n=Cc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Oc(t,n),auxiliary:Vc(t,n),negative:Bc(t),phrasal:zc(n)}};const Fc={tense:"PresentTense"},Sc={conditional:!0},Hc={tense:"FutureTense"},Mc={progressive:!0},Lc={tense:"PastTense"},Wc={complete:!0,progressive:!1},Jc={passive:!0},qc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Kc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Fc]],["^wanted to #Infinitive$",[Lc]],["^will want to #Infinitive$",[Hc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Lc]],["^#PresentTense #Gerund$",[Fc]],["^#Infinitive #Gerund$",[Fc]],["^will #Infinitive #Gerund$",[Hc]],["^have #PastTense #Gerund$",[Lc]],["^will have #PastTense #Gerund$",[Lc]]],"simple-present":[["^#PresentTense$",[Fc]],["^#Infinitive$",[Fc]]],"simple-past":[["^#PastTense$",[Lc]]],"simple-future":[["^will #Adverb? #Infinitive",[Hc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Fc,Mc]]],"past-progressive":[["^(was|were) #Gerund$",[Lc,Mc]]],"future-progressive":[["^will be #Gerund$",[Hc,Mc]]],"present-perfect":[["^(has|have) #PastTense$",[Lc,Wc]]],"past-perfect":[["^had #PastTense$",[Lc,Wc]],["^had #PastTense to #Infinitive",[Lc,Wc]]],"future-perfect":[["^will have #PastTense$",[Hc,Wc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Lc,Mc]]],"past-perfect-progressive":[["^had been #Gerund$",[Lc,Mc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Hc,Mc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Lc,Jc]],["^(was|were) being (#PastTense|#Participle)",[Lc,Jc]],["^(had|have) been (#PastTense|#Participle)",[Lc,Jc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Fc,Jc]],["^(is|are|am) being (#PastTense|#Participle)",[Fc,Jc]],["^has been (#PastTense|#Participle)",[Fc,Jc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Hc,Jc,Sc]],["will be being? (#PastTense|#Participle)",[Hc,Jc,Sc]]],"present-conditional":[["would be #PastTense",[Fc,Sc]]],"past-conditional":[["would have been #PastTense",[Lc,Sc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Hc]]],"auxiliary-past":[["^did #Infinitive$",[Lc,{plural:!1}]],["^used to #Infinitive$",[Lc,Wc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Fc,Wc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Lc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Rc=[];Object.keys(Kc).map(e=>{Kc[e].forEach(t=>{Rc.push({name:e,match:t[0],data:qc(t[1])})})});var Uc=Rc;var Qc=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),_c(r)&&(n.remove(r),r=n.last()),_c(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Zc(t,e)}};const Xc=e=>e,eh=(e,t)=>{let n=Yc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},th=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Yc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},nh=function(e,t){let n=Yc(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},rh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,rh(e)),r&&e.replace(t.root,r),e},oh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ih=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},sh=function(e){return e&&e.isView?e.text("normal"):""},lh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,rh(e))};var uh=function(e){let t=$c(e);e=e.clone().toView();const n=Qc(e,t);return{root:t.root.text(),preAdverbs:ih(t.adverbs.pre),postAdverbs:ih(t.adverbs.post),auxiliary:sh(t.auxiliary),negative:t.negative.found,prefix:sh(t.prefix),infinitive:lh(t.root),grammar:n}};const ch={tags:!0};var hh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,rh(r)),i&&e.replace(r,i,ch).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=nh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const dh={tags:!0},ph={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,rh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Yc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=ph.simple(e,t),e=ph.noAux(e,t))},hasHad:e=>(e.replace("has","had",dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,rh(a)),n(o,e.model).Participle}},mh={infinitive:ph.simple,"simple-present":ph.simple,"simple-past":Xc,"simple-future":ph.both,"present-progressive":e=>(e.replace("are","were",dh),e.replace("(is|are|am)","was",dh),e),"past-progressive":Xc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ph.hasHad,"past-perfect":Xc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=oh(e)),e.remove("have"),e),"present-perfect-progressive":ph.hasHad,"past-perfect-progressive":Xc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",dh),e),"passive-past":e=>(e.replace("have","had",dh),e),"passive-present":e=>(e.replace("(is|are)","was",dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Xc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",dh),e),"auxiliary-past":Xc,"auxiliary-present":e=>(e.replace("(do|does)","did",dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",dh):(ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Xc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ph.simple(e,t),oh(e),e)};var gh=function(e,t,n){return mh.hasOwnProperty(n)?((e=mh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const fh={tags:!0},vh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,rh(a)),!1===eh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=th(e)),o&&(e=e.replace(a,o,fh)).not("#Particle").tag("PresentTense"),e},bh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,rh(a)),!1===eh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,fh)).not("#Particle").tag("Gerund"),e},yh={infinitive:vh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return vh(e,t);{let t=Yc(e).subject;if(eh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,fh)}return e},"simple-past":vh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=th(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else vh(e,t),e=e.remove("will");return e},"present-progressive":Xc,"past-progressive":(e,t)=>{let n=th(e);return e.replace("(were|was)",n,fh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(vh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Yc(e).subject;return eh(e)||n.has("i")?((e=ah(e,t)).remove("had"),e):(e.replace("had","has",fh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Xc,"past-perfect-progressive":e=>e.replace("had","has",fh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=th(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,fh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Xc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Xc,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(bh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=nh(e);return e.replace(t.auxiliary,n),e}return bh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Xc,"modal-infinitive":Xc,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,rh(r)),a&&(e=e.replace(t.root,a,fh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),vh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return eh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,fh),e.remove("will"),e}};var wh=function(e,t,n){return yh.hasOwnProperty(n)?((e=yh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const kh={tags:!0},Ph=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,rh(r)),o&&(e=e.replace(r,o,kh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Ah=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,rh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,kh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},jh={infinitive:Ph,"simple-present":Ph,"simple-past":Ph,"simple-future":Xc,"present-progressive":Ah,"past-progressive":Ah,"future-progressive":Xc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Xc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Xc,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Xc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Xc,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Xc,"modal-past":Xc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Nh=function(e,t,n){return e.has("will")||e.has("going to")?e:jh.hasOwnProperty(n)?((e=jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Eh={tags:!0};var xh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,rh(a));let s=r(i,e.model).Gerund;return s&&(s=`${th(e)} ${s}`,e.replace(a,s,Eh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Ih={tags:!0},Th=function(e,t){let n=nh(e);return e.prepend(n+" not"),e},Gh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Dh=e=>e.has("(is|was|am|are|will|were|be)"),Ch={"simple-present":(e,t)=>!0===Dh(e)?Gh(e):(e=ah(e,t),e=Th(e)),"simple-past":(e,t)=>!0===Dh(e)?Gh(e):((e=ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Dh(e)?Gh(e):Th(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Ih),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Th(e)).replace("wants","want",Ih)};var Oh=function(e,t,n){if(e.has("#Negative"))return e;if(Ch.hasOwnProperty(n))return e=Ch[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Dh(e)?Gh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Vh=(e,t)=>"number"==typeof t?e.eq(t):e;var Bh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Vh(this,e).map($c)}json(e,t){return Vh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=uh(t),n},[])}subjects(e){return Vh(this,e).map(e=>($c(e),Yc(e).subject))}adverbs(e){return Vh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Vh(this,e).filter(e=>!0!==Yc(e).plural)}isPlural(e){return Vh(this,e).filter(e=>!0===Yc(e).plural)}isImperative(e){return Vh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return hh(e,t,n.form)})}toPresentTense(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return wh(e,t,n.form)})}toPastTense(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return gh(e,t,n.form)})}toFutureTense(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return Nh(e,t,n.form)})}toGerund(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return xh(e,t,n.form)})}conjugate(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:hh(e.clone(),t,n.form).text("normal"),PastTense:gh(e.clone(),t,n.form).text("normal"),PresentTense:wh(e.clone(),t,n.form).text("normal"),FutureTense:Nh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return Oh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Dc(this);return t=Vh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Dl),m.plugin(Xl),m.plugin(iu),m.plugin(ku),m.plugin(ac),m.plugin(sc),m.plugin(fc),m.plugin(Gc),m.plugin(Bh);export{m as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 464ab3038..c486a1a31 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]);return e(a,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let a=this.update([t[e]]);return a._cache=n[e],a}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);return r.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(a.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):r):r;var o};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const I=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},j=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:a,world:r}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:j(e)?j(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(I(t.update([u]).firstTerm()),k(h,u,d,a)):(I(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var C=T,O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V,$={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const L=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=L(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=L(this.document,e);return this.document=t,this.all()}var r;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,M,W,K);var R={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Z=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Z)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},ge={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},pe=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(a[s].normal)&&([l,u]=a[s].normal.split(ce));let c=pe(o,a[s],l,u);!c&&ge.hasOwnProperty(u)&&(c=ge[u](a,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](a,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(c,e),Q(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ye=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ve.test(l)){let e=l.replace(ve,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ee=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ne=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},De={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ae(e,this.world));var a;let r=je(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ae(e,this.world());return Ne(t)}}};const xe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Te=function(e,t){let{ptrs:n,byGroup:a}=e;return n=xe(n,t),Object.keys(a).forEach(e=>{a[e]=xe(a[e],t)}),{ptrs:n,byGroup:a}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Be=e=>e&&Ce(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Be(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e);if(Be(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Be(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},Ve={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Fe=function(e,t){return[e[0],e[1],t[2]]},$e=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Se=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Fe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Fe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Je=He;const Me=Object.assign({},ze,Ve,Je);Me.lookBehind=Me.before,Me.lookBefore=Me.before,Me.lookAhead=Me.after,Me.lookAfter=Me.after,Me.notIf=Me.ifNo;var Le=function(e){Object.assign(e.prototype,Me)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ke=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,qe=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(We),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Ue(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?a.push(e):a=a.concat(e.split(qe))}),a=Ue(a),a};const Ze=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),at=e=>e.substring(0,e.length-1),rt=function(e){return e=nt(e),e=at(e)},ot=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===et(e)&&(n.end=!0,e=at(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=at(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=at(e)),"?"===et(e)&&(n.optional=!0,e=at(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=rt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){_e.test(e)?(n.choices=e.split(_e),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=at(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=rt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=rt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=rt(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Ze.test(e)&&(e=e.replace(Ze,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&st.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let a=0;a{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Qe(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),vt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||pt.test(e.post),hasComma:e=>yt(e,","),hasPeriod:e=>!0===yt(e,".")&&!1===yt(e,"..."),hasExclamation:e=>yt(e,"!"),hasQuestionMark:e=>yt(e,"?")||yt(e,"¿"),hasEllipses:e=>yt(e,"..")||yt(e,"…")||vt(e,"..")||vt(e,"…"),hasSemicolon:e=>yt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,a)):t.choices.some(t=>Pt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var At=Pt;const Et=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(It(e,e.t).length=a-e.t),e.t=a,!0)};const Gt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&At(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(It(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},xt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==At(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null},Tt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=At(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Bt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Tt(e),a.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=It(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},zt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Et(e,r)){if(!0!==At(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative&&!xt(r))return null;if(!0!==e.optional)return null}else if(!Bt(r))return null}else if(!Bt(r))return null}else if(!Bt(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!jt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}},Vt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Ft=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},$t=function(e,t,n){let a=zt(e,t,0,e.length);return a?(a=Ft(a,n),a):null};var St={api:Le,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Vt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Jt=/^#./,Mt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Lt={html:function(e){let{starts:t,ends:n}=Mt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Kt,""),Rt.test(r)&&(r=" "),r=r.replace(qt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Kt,""),r="-"===r?" ":r.replace(Wt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Ut.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Zt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Zt.clean=Zt.normal,Zt.reduced=Zt.root;var _t=Zt;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const an=function(e,t){return Object.assign({},e,t)},rn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,an(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,an(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,an(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=rn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};rn.sentences=rn.sentence,rn.clean=rn.normal,rn.reduced=rn.root;const on={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},tn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&rn[o]&&(r[o]=rn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=cn.blue(" │ ")+cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},gn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${cn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var pn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&_t.hasOwnProperty(e)?t=Object.assign({},_t[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},En=function(e,t){let n=e.concat(t),a=kn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},jn=function(e,t){let n=kn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Nn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Dn={union:function(e){e=Gn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};Dn.and=Dn.union,Dn.intersection=function(e){e=Gn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.not=function(e){e=Gn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.difference=Dn.not,Dn.complement=function(){let e=this.all(),t=In(e.fullPointer,this.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=En(e,[t])}),e=Nn(e,this.document),this.update(e)};var xn={methods:An,api:function(e){Object.assign(e.prototype,Dn)}};const Tn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Tn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Tn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Tn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})},Bn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},zn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r},Vn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=On(r,t.hooks);return o=Bn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),zn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Vn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const $n=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),$n.test(t))!function(e,t,n,a){let r=t.split($n);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nJn(e,t,n,a))};var Mn=Jn,Ln=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Wn({id:e})),t}return[Wn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),Zn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Kn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:qn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Wn({});return e.forEach(e=>{if((e=Wn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Wn),t);var t},_n=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Rn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:_n,txt:_n,array:Yn,flat:Yn},ea=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(_n(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},ta=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},na=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!na.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Wn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Wn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ta(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ta(this.json),ea(this.json,e)}debug(){return ta(this.json),ea(this.json,"debug"),this}}const aa=function(e){let t=Zn(e);return new g$1(t)};aa.prototype.plugin=function(e){e(this)};var ra={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const oa=function(e){if(ra.hasOwnProperty(e.id))return ra[e.id];if(ra.hasOwnProperty(e.is))return ra[e.is];let t=e._cache.parents.find(e=>ra[e]);return ra[t]};var ia=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:oa(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sa=function(e){return e?"string"==typeof e?[e]:e:[]};var la=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sa(e[t].children),e[t].not=sa(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ua={one:{setTag:Mn,unTag:Ln,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=la(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return aa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ia(n)}}};const ca=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ha={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ca(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ca(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}},da=function(e){Object.assign(e.prototype,ha)},ga={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ma=new Set(["Auxiliary","Possessive"]);var pa={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ma.has(e)||!t.hasOwnProperty(n))return 1;if(ma.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ua,api:da,lib:ga};const fa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ba=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]);return e(a,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let a=this.update([t[e]]);return a._cache=n[e],a}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);return r.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(a.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):r):r;var o};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const I=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},j=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:a,world:r}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:j(e)?j(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(I(t.update([u]).firstTerm()),k(h,u,d,a)):(I(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var C=T,O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V,$={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const L=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=L(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=L(this.document,e);return this.document=t,this.all()}var r;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,M,W,K);var R={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Z=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Z)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},ge={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},pe=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(a[s].normal)&&([l,u]=a[s].normal.split(ce));let c=pe(o,a[s],l,u);!c&&ge.hasOwnProperty(u)&&(c=ge[u](a,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](a,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(c,e),Q(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ye=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ve.test(l)){let e=l.replace(ve,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ee=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ne=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},De={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ae(e,this.world));var a;let r=je(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ae(e,this.world());return Ne(t)}}};const xe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Te=function(e,t){let{ptrs:n,byGroup:a}=e;return n=xe(n,t),Object.keys(a).forEach(e=>{a[e]=xe(a[e],t)}),{ptrs:n,byGroup:a}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Be=e=>e&&Ce(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Be(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e);if(Be(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Be(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},Ve={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Fe=function(e,t){return[e[0],e[1],t[2]]},$e=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Se=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Fe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Fe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Je=He;const Me=Object.assign({},ze,Ve,Je);Me.lookBehind=Me.before,Me.lookBefore=Me.before,Me.lookAhead=Me.after,Me.lookAfter=Me.after,Me.notIf=Me.ifNo;var Le=function(e){Object.assign(e.prototype,Me)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ke=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,qe=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(We),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Ue(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?a.push(e):a=a.concat(e.split(qe))}),a=Ue(a),a};const Ze=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),at=e=>e.substring(0,e.length-1),rt=function(e){return e=nt(e),e=at(e)},ot=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===et(e)&&(n.end=!0,e=at(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=at(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=at(e)),"?"===et(e)&&(n.optional=!0,e=at(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=rt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){_e.test(e)?(n.choices=e.split(_e),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=at(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=rt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=rt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=rt(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Ze.test(e)&&(e=e.replace(Ze,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&st.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let a=0;a{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Qe(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),vt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||pt.test(e.post),hasComma:e=>yt(e,","),hasPeriod:e=>!0===yt(e,".")&&!1===yt(e,"..."),hasExclamation:e=>yt(e,"!"),hasQuestionMark:e=>yt(e,"?")||yt(e,"¿"),hasEllipses:e=>yt(e,"..")||yt(e,"…")||vt(e,"..")||vt(e,"…"),hasSemicolon:e=>yt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,a)):t.choices.some(t=>Pt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var At=Pt;const Et=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(It(e,e.t).length=a-e.t),e.t=a,!0)};const Gt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&At(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(It(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},xt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==At(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null},Tt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=At(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Bt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Tt(e),a.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=It(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},zt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Et(e,r)){if(!0!==At(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative&&!xt(r))return null;if(!0!==e.optional)return null}else if(!Bt(r))return null}else if(!Bt(r))return null}else if(!Bt(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!jt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}},Vt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Ft=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},$t=function(e,t,n){let a=zt(e,t,0,e.length);return a?(a=Ft(a,n),a):null};var St={api:Le,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Vt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Jt=/^#./,Mt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Lt={html:function(e){let{starts:t,ends:n}=Mt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Kt,""),Rt.test(r)&&(r=" "),r=r.replace(qt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Kt,""),r="-"===r?" ":r.replace(Wt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Ut.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Zt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Zt.clean=Zt.normal,Zt.reduced=Zt.root;var _t=Zt;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const an=function(e,t){return Object.assign({},e,t)},rn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,an(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,an(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,an(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=rn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};rn.sentences=rn.sentence,rn.clean=rn.normal,rn.reduced=rn.root;const on={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},tn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&rn[o]&&(r[o]=rn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=cn.blue(" │ ")+cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},gn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${cn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var pn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&_t.hasOwnProperty(e)?t=Object.assign({},_t[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},En=function(e,t){let n=e.concat(t),a=kn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},jn=function(e,t){let n=kn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Nn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Dn={union:function(e){e=Gn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};Dn.and=Dn.union,Dn.intersection=function(e){e=Gn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.not=function(e){e=Gn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.difference=Dn.not,Dn.complement=function(){let e=this.all(),t=In(e.fullPointer,this.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=En(e,[t])}),e=Nn(e,this.document),this.update(e)};var xn={methods:An,api:function(e){Object.assign(e.prototype,Dn)}};const Tn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Tn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Tn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Tn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})},Bn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},zn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r},Vn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=On(r,t.hooks);return o=Bn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),zn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Vn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,r)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const $n=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),$n.test(t))!function(e,t,n,a){let r=t.split($n);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nJn(e,t,n,a))};var Mn=Jn,Ln=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Wn({id:e})),t}return[Wn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),Zn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Kn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:qn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Wn({});return e.forEach(e=>{if((e=Wn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Wn),t);var t},_n=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Rn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:_n,txt:_n,array:Yn,flat:Yn},ea=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(_n(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},ta=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},na=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!na.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Wn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Wn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ta(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ta(this.json),ea(this.json,e)}debug(){return ta(this.json),ea(this.json,"debug"),this}}const aa=function(e){let t=Zn(e);return new g$1(t)};aa.prototype.plugin=function(e){e(this)};var ra={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const oa=function(e){if(ra.hasOwnProperty(e.id))return ra[e.id];if(ra.hasOwnProperty(e.is))return ra[e.is];let t=e._cache.parents.find(e=>ra[e]);return ra[t]};var ia=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:oa(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sa=function(e){return e?"string"==typeof e?[e]:e:[]};var la=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sa(e[t].children),e[t].not=sa(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ua={one:{setTag:Mn,unTag:Ln,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=la(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return aa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ia(n)}}};const ca=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ha={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ca(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ca(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}},da=function(e){Object.assign(e.prototype,ha)},ga={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ma=new Set(["Auxiliary","Possessive"]);var pa={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ma.has(e)||!t.hasOwnProperty(n))return 1;if(ma.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ua,api:da,lib:ga};const fa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ba=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var ya=function(e){let t=[],n=e.split(ba);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Va=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,$a=/['’]/,Sa=/^[a-z]\.([a-z]\.)+/i,Ha=/^[-+.][0-9]/,Ja=/^'[0-9]{2}/;var Ma=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Va,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Ha.test(e)?"'"===n&&Ja.test(e)?(n="",t):"":(n="",t)))).replace(Fa,r=>(a=r,$a.test(r)&&/[sn]['’]$/.test(t)&&!1===$a.test(n)?(a=a.replace($a,""),"'"):!0===Sa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},La=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Wa=/([A-Z]\.)+[A-Z]?,?$/,Ka=/^[A-Z]\.,?$/,qa=/[A-Z]{2,}('s|,)?$/,Ra=/([a-z]\.)+[a-z]\.?$/;var Ua=function(e){return function(e){return!0===Wa.test(e)||!0===Ra.test(e)||!0===Ka.test(e)||!0===qa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=La(a),a=n(a,t),a=Ua(a),e.normal=a},Za={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:ja,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ba);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Ta(n),n=Da(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ma(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Qa(e,t)}),n})}}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ya={},Xa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Ya[t]=!0,Xa[t]="Abbreviation",void 0!==e[1]&&(Xa[t]=[Xa[t],e[1]])})});var er=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let tr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},nr={};Object.keys(tr).forEach((function(e){tr[e].split("").forEach((function(t){nr[t]=e}))}));const ar=/\//,rr=/[a-z]\.[a-z]/i,or=/[0-9]/;var ir=function(e,t){let n=e.normal||e.text;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),ar.test(n)&&!rr.test(n)&&!or.test(n)){let t=n.split(ar);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const sr=/^\p{Letter}+-\p{Letter}+$/u;var lr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),sr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ur=function(e){let t=0,n=0,a=e.document;for(let e=0;ecr(e,ir),machine:e=>cr(e,lr),normal:e=>cr(e,Qa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const mr={safe:!0,min:3};var pr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=dr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},mr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=gr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(vn),m.extend(St),m.extend(xn),m.extend(pa),m.plugin(be),m.extend(hr),m.plugin(f),m.extend(De),m.extend(pr),m.extend(Pe),m.extend(Fn);var fr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},br={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const yr=36,vr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wr=vr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var kr=function(e){if(void 0!==wr[e])return wr[e];let t=0,n=1,a=yr,r=1;for(;n=0;n--,r*=yr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Pr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Er(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ir(br[e]);Dr.test(e)?Object.keys(t).forEach(t=>{if(Tr[t]=e,"Noun|Verb"===e){let e=Nr(t,Cr);Tr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{xr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","xr[e]="Emoticon"),delete xr[""],delete xr.null,delete xr[" "];const Or="Adjective";var Br={beforeTags:{Determiner:Or,Possessive:Or},afterTags:{Adjective:Or},beforeWords:{seem:Or,seemed:Or,seems:Or,feel:Or,feels:Or,felt:Or,appear:Or,appears:Or,appeared:Or,also:Or,over:Or,under:Or,too:Or,it:Or,but:Or,still:Or,really:Or,quite:Or,well:Or,very:Or,deeply:Or,profoundly:Or,extremely:Or,so:Or,badly:Or,mostly:Or,totally:Or,awfully:Or,rather:Or,nothing:Or,something:Or,anything:Or},afterWords:{too:Or,also:Or,or:Or}};const zr="Gerund";var Vr={beforeTags:{Adverb:zr,Preposition:zr,Conjunction:zr},afterTags:{Adverb:zr,Possessive:zr,Person:zr,Pronoun:zr,Determiner:zr,Copula:zr,Preposition:zr,Conjunction:zr,Comparative:zr},beforeWords:{been:zr,keep:zr,continue:zr,stop:zr,am:zr,be:zr,me:zr,began:zr,start:zr,starts:zr,started:zr,stops:zr,stopped:zr,help:zr,helps:zr,avoid:zr,avoids:zr,love:zr,loves:zr,loved:zr,hate:zr,hates:zr,hated:zr},afterWords:{you:zr,me:zr,her:zr,him:zr,them:zr,their:zr,it:zr,this:zr,there:zr,on:zr,about:zr,for:zr}},Fr={beforeTags:Object.assign({},Br.beforeTags,Vr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Br.afterTags,Vr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Br.beforeWords,Vr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Br.afterWords,Vr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const $r="Singular";var Sr={beforeTags:{Determiner:$r,Possessive:$r,Acronym:$r,Noun:$r,Adjective:$r,PresentTense:$r,Gerund:$r,PastTense:$r,Infinitive:$r,Date:$r},afterTags:{Value:$r,Modal:$r,Copula:$r,PresentTense:$r,PastTense:$r,Demonym:$r},beforeWords:{the:$r,with:$r,without:$r,of:$r,for:$r,any:$r,all:$r,on:$r,cut:$r,cuts:$r,save:$r,saved:$r,saves:$r,make:$r,makes:$r,made:$r,minus:$r,plus:$r,than:$r,another:$r,versus:$r,neither:$r,favorite:$r,best:$r,daily:$r,weekly:$r,linear:$r,binary:$r,mobile:$r,lexical:$r,technical:$r,computer:$r,scientific:$r,formal:$r},afterWords:{of:$r,system:$r,aid:$r,method:$r,utility:$r,tool:$r,reform:$r,therapy:$r,philosophy:$r,room:$r,authority:$r,says:$r,said:$r,wants:$r,wanted:$r}};const Hr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Jr={beforeTags:Object.assign({},Br.beforeTags,Sr.beforeTags,Hr.beforeTags),afterTags:Object.assign({},Br.afterTags,Sr.afterTags),beforeWords:Object.assign({},Br.beforeWords,Sr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Br.afterWords,Sr.afterWords)};const Mr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Lr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Wr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Kr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var qr={beforeTags:Object.assign({},Br.beforeTags,Mr),afterTags:Object.assign({},Br.afterTags,Lr),beforeWords:Object.assign({},Br.beforeWords,Wr),afterWords:Object.assign({},Br.afterWords,Kr)};const Rr="Infinitive";var Ur={beforeTags:{Modal:Rr,Adverb:Rr,Negative:Rr,Plural:Rr},afterTags:{Determiner:Rr,Adverb:Rr,Possessive:Rr,Preposition:Rr},beforeWords:{i:Rr,we:Rr,you:Rr,they:Rr,to:Rr,please:Rr,will:Rr,have:Rr,had:Rr,would:Rr,could:Rr,should:Rr,do:Rr,did:Rr,does:Rr,can:Rr,must:Rr,us:Rr,me:Rr,he:Rr,she:Rr,it:Rr,being:Rr},afterWords:{the:Rr,me:Rr,you:Rr,him:Rr,her:Rr,them:Rr,it:Rr,a:Rr,an:Rr,up:Rr,down:Rr,by:Rr,out:Rr,off:Rr,under:Rr,when:Rr,all:Rr,to:Rr,because:Rr,although:Rr,before:Rr,how:Rr,otherwise:Rr,together:Rr,though:Rr,yet:Rr}};const Qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Zr={beforeTags:Object.assign({},Br.beforeTags,Ur.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Br.afterTags,Ur.afterTags,Qr.afterTags),beforeWords:Object.assign({},Br.beforeWords,Ur.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Br.afterWords,Ur.afterWords,{to:void 0})};const _r={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Yr={},Xr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},eo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var to={beforeTags:Object.assign({},Vr.beforeTags,Sr.beforeTags,_r),afterTags:Object.assign({},Vr.afterTags,Sr.afterTags,Yr),beforeWords:Object.assign({},Vr.beforeWords,Sr.beforeWords,Xr),afterWords:Object.assign({},Vr.afterWords,Sr.afterWords,eo)},no={beforeTags:Object.assign({},Ur.beforeTags,Sr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ur.afterTags,Sr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ur.beforeWords,Sr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ur.afterWords,Sr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ao="Person";var ro={beforeTags:{Honorific:ao,Person:ao,Preposition:ao},afterTags:{Person:ao,ProperNoun:ao,Verb:ao},ownTags:{ProperNoun:ao},beforeWords:{hi:ao,hey:ao,yo:ao,dear:ao,hello:ao},afterWords:{said:ao,says:ao,told:ao,tells:ao,feels:ao,felt:ao,seems:ao,thinks:ao,thought:ao,spends:ao,spendt:ao,plays:ao,played:ao,sing:ao,sang:ao,learn:ao,learned:ao,wants:ao,wanted:ao}};const oo="Month",io={beforeTags:{Date:oo,Value:oo},afterTags:{Date:oo,Value:oo},beforeWords:{by:oo,in:oo,on:oo,during:oo,after:oo,before:oo,between:oo,until:oo,til:oo,sometime:oo,of:oo,this:oo,next:oo,last:oo,previous:oo,following:oo},afterWords:{sometime:oo,in:oo,of:oo,until:oo,the:oo}};var so={beforeTags:Object.assign({},ro.beforeTags,io.beforeTags),afterTags:Object.assign({},ro.afterTags,io.afterTags),beforeWords:Object.assign({},ro.beforeWords,io.beforeWords),afterWords:Object.assign({},ro.afterWords,io.afterWords)};const lo={Place:"Place"},uo={Place:"Place",Abbreviation:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ho={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},go={"Adj|Gerund":Fr,"Adj|Noun":Jr,"Adj|Past":qr,"Adj|Present":Zr,"Noun|Verb":no,"Noun|Gerund":to,"Person|Noun":{beforeTags:Object.assign({},Sr.beforeTags,ro.beforeTags),afterTags:Object.assign({},Sr.afterTags,ro.afterTags),beforeWords:Object.assign({},Sr.beforeWords,ro.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Sr.afterWords,ro.afterWords)},"Person|Date":so,"Person|Verb":{beforeTags:Object.assign({},ro.beforeTags,Ur.beforeTags),afterTags:Object.assign({},ro.afterTags,Ur.afterTags),beforeWords:Object.assign({},ro.beforeWords,Ur.beforeWords),afterWords:Object.assign({},ro.afterWords,Ur.afterWords)},"Person|Place":{beforeTags:Object.assign({},lo,ro.beforeTags),afterTags:Object.assign({},uo,ro.afterTags),beforeWords:Object.assign({},co,ro.beforeWords),afterWords:Object.assign({},ho,ro.afterWords)}},mo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};go["Plural|Verb"]={beforeWords:mo(go["Noun|Verb"].beforeWords,{}),afterWords:mo(go["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:mo(go["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:mo(go["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var po=go;const fo="Adjective",bo="Infinitive",yo="PresentTense",vo="Singular",wo="PastTense",ko="Adverb",Po="Plural",Ao="Actor",Eo="Verb",Io="Noun",jo="LastName",Go="Modal",No="Participle";var Do=[null,null,{ea:vo,ia:Io,ic:fo,ly:ko,"'n":Eo,"'t":Eo},{oed:wo,ued:wo,xed:wo," so":ko,"'ll":Go,"'re":"Copula",azy:fo,eer:Io,end:Eo,ped:wo,ffy:fo,ify:bo,ing:"Gerund",ize:bo,ibe:bo,lar:fo,mum:fo,nes:yo,nny:fo,ous:fo,que:fo,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:yo,eld:wo,ken:No,ven:No,ten:No,ect:bo,ict:bo,ign:bo,ful:fo,bal:fo},{amed:wo,aped:wo,ched:wo,lked:wo,rked:wo,reed:wo,nded:wo,mned:fo,cted:wo,dged:wo,ield:vo,akis:jo,cede:bo,chuk:jo,czyk:jo,ects:yo,ends:Eo,enko:jo,ette:vo,wner:vo,fies:yo,fore:ko,gate:bo,gone:fo,ices:Po,ints:Po,ruct:bo,ines:Po,ions:Po,less:fo,llen:fo,made:fo,nsen:jo,oses:yo,ould:Go,some:fo,sson:jo,tion:vo,tage:Io,ique:vo,tive:fo,tors:Io,vice:vo,lier:vo,fier:vo,wned:wo,gent:vo,tist:vo,pist:vo,rist:vo,mist:vo,yist:vo,vist:vo,lite:vo,site:vo,rite:vo,mite:vo,bite:vo,mate:vo,date:vo,ndal:vo,vent:vo,uist:vo,gist:vo,note:vo,cide:vo,wide:fo,vide:bo,ract:bo,duce:bo,pose:bo,eive:bo,lyze:bo,lyse:bo,iant:fo,nary:fo},{elist:vo,holic:vo,phite:vo,tized:wo,urned:wo,eased:wo,ances:Po,bound:fo,ettes:Po,fully:ko,ishes:yo,ities:Po,marek:jo,nssen:jo,ology:Io,osome:vo,tment:vo,ports:Po,rough:fo,tches:yo,tieth:"Ordinal",tures:Po,wards:ko,where:ko,archy:Io,pathy:Io,opoly:Io,embly:Io,phate:Io,ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:bo,iable:fo,borne:fo,gnant:fo,inant:fo,igent:fo,atory:fo,rient:vo,dient:vo},{auskas:jo,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:Ao,logist:Ao,teenth:"Value"},{opoulos:jo,borough:"Place",sdottir:jo}];const xo="Adjective",To="Noun",Co="Verb";var Oo=[null,null,{},{neo:To,bio:To,"de-":Co,"re-":Co,"un-":Co},{anti:To,auto:To,faux:xo,hexa:To,kilo:To,mono:To,nano:To,octa:To,poly:To,semi:xo,tele:To,"pro-":xo,"mis-":Co,"dis-":Co,"pre-":xo},{anglo:To,centi:To,ethno:To,ferro:To,grand:To,hepta:To,hydro:To,intro:To,macro:To,micro:To,milli:To,nitro:To,penta:To,quasi:xo,radio:To,tetra:To,"omni-":xo,"post-":xo},{pseudo:xo,"extra-":xo,"hyper-":xo,"inter-":xo,"intra-":xo,"deca-":xo},{electro:To}];const Bo="Adjective",zo="Infinitive",Vo="PresentTense",Fo="Singular",$o="PastTense",So="Adverb",Ho="Expression",Jo="Actor",Mo="Verb",Lo="Noun",Wo="LastName";var Ko={a:[[/.[aeiou]na$/,Lo,"tuna"],[/.[oau][wvl]ska$/,Wo],[/.[^aeiou]ica$/,Fo,"harmonica"],[/^([hyj]a+)+$/,Ho,"haha"]],c:[[/.[^aeiou]ic$/,Bo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,$o,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,$o,"rammed"],[/.[aeiou][sg]hed$/,$o,"gushed"],[/.[aeiou]red$/,$o,"hired"],[/.[aeiou]r?ried$/,$o,"hurried"],[/[^aeiou]ard$/,Fo,"steward"],[/[aeiou][^aeiou]id$/,Bo,""],[/.[vrl]id$/,Bo,"livid"],[/..led$/,$o,"hurled"],[/.[iao]sed$/,$o,""],[/[aeiou]n?[cs]ed$/,$o,""],[/[aeiou][rl]?[mnf]ed$/,$o,""],[/[aeiou][ns]?c?ked$/,$o,"bunked"],[/[aeiou]gned$/,$o],[/[aeiou][nl]?ged$/,$o],[/.[tdbwxyz]ed$/,$o],[/[^aeiou][aeiou][tvx]ed$/,$o],[/.[cdflmnprstv]ied$/,$o,"emptied"]],e:[[/.[lnr]ize$/,zo,"antagonize"],[/.[^aeiou]ise$/,zo,"antagonise"],[/.[aeiou]te$/,zo,"bite"],[/.[^aeiou][ai]ble$/,Bo,"fixable"],[/.[^aeiou]eable$/,Bo,"maleable"],[/.[ts]ive$/,Bo,"festive"],[/[a-z]-like$/,Bo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Bo,"cornish"],[/.v[iy]ch$/,Wo,"..ovich"],[/^ug?h+$/,Ho,"ughh"],[/^uh[ -]?oh$/,Ho,"uhoh"],[/[a-z]-ish$/,Bo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Wo,"polish-male"]],k:[[/^(k){2}$/,Ho,"kkkk"]],l:[[/.[gl]ial$/,Bo,"familial"],[/.[^aeiou]ful$/,Bo,"fitful"],[/.[nrtumcd]al$/,Bo,"natal"],[/.[^aeiou][ei]al$/,Bo,"familial"]],m:[[/.[^aeiou]ium$/,Fo,"magnesium"],[/[^aeiou]ism$/,Fo,"schism"],[/^[hu]m+$/,Ho,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Bo,"republican"],[/[^aeiou]ician$/,Jo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ho,"noooo"],[/^(yo)+$/,Ho,"yoo"],[/^wo{2,}[pt]?$/,Ho,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Fo],[/[^i]fer$/,zo],[/.[^aeiou][ao]pher$/,Jo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Bo],[/[aeiou].*ist$/,Bo],[/^[a-z]et$/,Mo]],s:[[/.[^aeiou]ises$/,Vo],[/.[rln]ates$/,Vo],[/.[^z]ens$/,Mo],[/.[lstrn]us$/,Fo],[/.[aeiou]sks$/,Vo],[/.[aeiou]kes$/,Vo],[/[aeiou][^aeiou]is$/,Fo],[/[a-z]'s$/,Lo],[/^yes+$/,Ho]],v:[[/.[^aeiou][ai][kln]ov$/,Wo]],y:[[/.[cts]hy$/,Bo],[/.[st]ty$/,Bo],[/.[tnl]ary$/,Bo],[/.[oe]ry$/,Fo],[/[rdntkbhs]ly$/,So],[/.(gg|bb|zz)ly$/,Bo],[/...lly$/,So],[/.[gk]y$/,Bo],[/[bszmp]{2}y$/,Bo],[/.[ai]my$/,Bo],[/[ea]{2}zy$/,Bo],[/.[^aeiou]ity$/,Fo]]};const qo="Verb",Ro="Noun";var Uo={leftTags:[["Adjective",Ro],["Possessive",Ro],["Determiner",Ro],["Adverb",qo],["Pronoun",qo],["Value",Ro],["Ordinal",Ro],["Modal",qo],["Superlative",Ro],["Demonym",Ro],["Honorific","Person"]],leftWords:[["i",qo],["first",Ro],["it",qo],["there",qo],["not",qo],["because",Ro],["if",Ro],["but",Ro],["who",qo],["this",Ro],["his",Ro],["when",Ro],["you",qo],["very","Adjective"],["old",Ro],["never",qo],["before",Ro],["a","Singular"],["the",Ro],["been",qo]],rightTags:[["Copula",Ro],["PastTense",Ro],["Conjunction",Ro],["Modal",Ro]],rightWords:[["there",qo],["me",qo],["man","Adjective"],["only",qo],["him",qo],["it",qo],["were",Ro],["took",Ro],["himself",qo],["went",Ro],["who",Ro],["jr","Person"]]},Qo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Zo={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},_o={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Yo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Xo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ei=/^.([0-9]+)/;var ti=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(ei);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ei,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},ai=/^([0-9]+)/,ri=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ai);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ai,"")]}(n[0],n[1])})};var oi=function(e={}){return(e=Object.assign({},e)).rules=ri(e.rules),e.rules=ni(e.rules),e.rev&&(e.rev=ri(e.rev),e.rev=ni(e.rev)),e.exceptions=ri(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ii=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const si=oi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),li=oi(Yo),ui=oi(Zo),ci=oi(_o),hi=ii(si),di=ii(li),gi=ii(ui),mi=ii(ci),pi=oi(Qo),fi=oi(Xo);var bi={fromPast:si,fromPresent:li,fromGerund:ui,fromParticiple:ci,toPast:hi,toPresent:di,toGerund:gi,toParticiple:mi,toComparative:pi,toSuperlative:fi,fromComparative:ii(pi),fromSuperlative:ii(fi)},yi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),vi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],wi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(ki[t].forEach(n=>e[n]=t),e),{});var Pi=ki,Ai=function(e){let t=e.substring(e.length-3);if(!0===Pi.hasOwnProperty(t))return Pi[t];let n=e.substring(e.length-2);return!0===Pi.hasOwnProperty(n)?Pi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ei={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ii=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Ai(e)),Ei.hasOwnProperty(e))c=Ei[e];else if("Participle"===n)c=ti(l,i);else if("PastTense"===n)c=ti(l,a);else if("PresentTense"===n)c=ti(l,r);else{if("Gerund"!==n)return e;c=ti(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ji=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ti(i,n),PresentTense:ti(i,a),Gerund:ti(i,r),FutureTense:"will "+e},u=ti(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Gi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Ni="ically",Di=new Set(["analyt"+Ni,"chem"+Ni,"class"+Ni,"clin"+Ni,"crit"+Ni,"ecolog"+Ni,"electr"+Ni,"empir"+Ni,"frant"+Ni,"grammat"+Ni,"ident"+Ni,"ideolog"+Ni,"log"+Ni,"mag"+Ni,"mathemat"+Ni,"mechan"+Ni,"med"+Ni,"method"+Ni,"method"+Ni,"mus"+Ni,"phys"+Ni,"phys"+Ni,"polit"+Ni,"pract"+Ni,"rad"+Ni,"satir"+Ni,"statist"+Ni,"techn"+Ni,"technolog"+Ni,"theoret"+Ni,"typ"+Ni,"vert"+Ni,"whims"+Ni]),xi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ti=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ci={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Oi=function(e){return e.endsWith("ly")?Di.has(e)?e.replace(/ically/,"ical"):Ti.has(e)?null:Ci.hasOwnProperty(e)?Ci[e]:Gi(e,xi)||e:null};const Bi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Vi=function(e){if(zi.hasOwnProperty(e))return zi[e];let t=Gi(e,Bi);return t||e+"ly"};const Fi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],$i={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Si=new Set(["terrible","annoying"]),Hi=function(e,t){const n=t.two.models.toSuperlative;return ti(e,n)},Ji=function(e,t){const n=t.two.models.toComparative;return ti(e,n)};var Mi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Li={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Mi.hasOwnProperty(i)&&Mi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Nr,nounToSingular:wi,verbToInfinitive:Ii,getTense:Ai,verbConjugate:ji,adjToSuperlative:Hi,adjToComparative:Ji,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ti(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ti(e,n)},advToAdjective:Oi,adjToAdverb:Vi,adjToNoun:function(e){if($i.hasOwnProperty(e))return $i[e];if(Si.has(e))return null;let t=Gi(e,Fi);return t||e+"ness"}}}},Wi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Ki=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var qi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Ki(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ki(a,"Infinitive","Verb"),Object.assign(s,l),l=Ki(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ki(o,"Adjective","Superlative"),Object.assign(s,l),l=Ki(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ri={two:{models:bi}};const Ui={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Qi=function(e,t){const n={model:t,methods:Li};let{lex:a,_multi:r}=Li.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Zi=function(e,t,n){let a=ji(e,Ri);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},_i=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ui[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Zi(r,a,!1),"Adj|Present"===o&&(Zi(r,a,!0),function(e,t,n){let a=Hi(e,n);t[a]=t[a]||"Superlative";let r=Ji(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ii(r,Ri,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ii(r,Ri,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Qi(n,t)};let Yi={one:{_multiCache:{},lexicon:xr},two:{irregularPlurals:fr,models:bi,suffixPatterns:Do,prefixPatterns:Oo,endsWith:Ko,neighbours:Uo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Tr,clues:po,uncountable:{},orgWords:yi}};Yi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Qi(e.one.lexicon,e)).one.lexicon,e),e=_i(e.two.switches,e),e=qi(e),e=Wi(e)}(Yi);var Xi=Yi;const es=/^(under|over|mis|re|un|dis|semi)-?/;var ts=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(es.test(r.normal)){let e=r.normal.replace(es,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},ns=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const as={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},rs=new Set(["formulas","koalas","israelis","menus"]),os=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var is=function(e){if(!e||e.length<=3)return!1;if(rs.has(e))return!0;let t=e[e.length-1];return as.hasOwnProperty(t)?as[t].find(t=>e.endsWith(t)):"s"===t&&!os.find(t=>e.endsWith(t))};const ss=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ls=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(is(e.normal)?ns(e,"Plural","3-plural-guess"):ns(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ai(e.normal);t&&ns(e,t,"3-verb-tense-guess")}}(a)};const us=/^\p{Lu}[\p{Ll}'’]/u,cs=/[0-9]/,hs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,gs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ms={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ps=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===us.test(o)&&!1===cs.test(o)?hs.find(e=>a.tags.has(e))?null:(ls(e,t,n),a.tags.has("Noun")||a.tags.clear(),ns(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&gs.test(o)&&!ms[a.normal]?(ns(a,"RomanNumeral","2-xvii"),!0):null};const fs=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var bs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=fs(a.normal,n.two.suffixPatterns);if(null!==e)return ns(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=fs(a.implicit,n.two.suffixPatterns),null!==e))return ns(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ys=/['‘’‛‵′`´]/,vs=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return ns(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Ps=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),As=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ps.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Es=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Is=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var js=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(As(r)||As(o))return ns(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Es(r)||Es(o))return ns(n,"Year","2-tagYear-close");if(Is(e[t-2])||Is(e[t+2]))return ns(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ns(n,"Year","2-tagYear-noun")}}}return null};const Gs=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Ds=/([A-Z]\.)+[A-Z]?,?$/,xs=/[A-Z]{2,}('s|,)?$/,Ts=/([a-z]\.)+[a-z]\.?$/,Cs={I:!0,A:!0};var Os=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ns.test(n)||n.length>5||Cs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ds.test(n)&&!0!==Ts.test(n)&&!0!==Gs.test(n)&&!0!==xs.test(n))}(a,n)?(a.tags.clear(),ns(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cs.hasOwnProperty(a.text)&&Gs.test(a.text)?(a.tags.clear(),ns(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(ns(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ns.test(a.text)&&a.text.length<=6?(ns(a,"Acronym","3-titlecase-acronym"),!0):null};const Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},zs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Vs=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Bs(e[t-1],r),l=l||Bs(e[t+1],o),l=l||zs(e[t-1],a),l=l||zs(e[t+1],i),l)return ns(s,l,"3-[neighbour]"),ls(e,t,n),e[t].confidence=.2,!0}return null};const Fs=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var $s=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Fs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Fs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Ss=function(e,t,n){0===e[t].tags.size&&(ns(e[t],"Noun","3-[fallback]"),ls(e,t,n),e[t].confidence=.1)};const Hs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Js=(e,t,n)=>0!==t||e[1]?null:n;var Ms={"Adj|Gerund":(e,t)=>Hs(e,t),"Adj|Noun":(e,t)=>Hs(e,t),"Adj|Past":(e,t)=>Hs(e,t),"Adj|Present":(e,t)=>Hs(e,t),"Noun|Gerund":(e,t)=>Hs(e,t),"Noun|Verb":(e,t)=>Hs(e,t)||Js(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hs(e,t)||Js(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hs(e,t),"Person|Verb":(e,t)=>0!==t&&Hs(e,t)};const Ls="undefined"!=typeof process&&process.env?process.env:self.env||{},Ws=/^(under|over|mis|re|un|dis|semi)-?/,Ks=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ls.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},qs=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Ls.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Rs={tagSwitch:ts,checkSuffix:bs,checkRegex:ws,checkCase:ps,checkPrefix:ks,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(ns(o,"Verb","3-[prefix]"),ns(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(ns(o,"Adjective","3-[prefix]"),ns(o,"Prefix","3-[prefix]")))},checkYear:js},Us={checkAcronym:Os,neighbours:Vs,orgWords:$s,nounFallback:Ss,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Ws.test(l)&&!o[l]&&(l=l.replace(Ws,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Ks(e[t+1],n.afterWords);return o=o||Ks(e[t-1],n.beforeWords),o=o||qs(e[t-1],n.beforeTags,r),o=o||qs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ms[o]&&(u=Ms[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ls.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Qs=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},Ys={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Xs={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const dl=/'/;var gl=function(e,t){let n=e[t].normal.split(dl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},ml=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},fl={in:!0,by:!0,for:!0};var bl=(e,t)=>{let n=e[t];if(pl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===fl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const yl=/'/,vl=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},wl={d:(e,t)=>gl(e,t),t:(e,t)=>ml(e,t),s:(e,t,n)=>bl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):hl(e,t)},kl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Pl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===yl.test(a[o].normal)&&([,i]=a[o].normal.split(yl));let s=null;wl.hasOwnProperty(i)&&(s=wl[i](a,o,t)),s&&(s=kl(s,e),ul(n,[r,o],s),vl(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ll.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=sl},hooks:["contractionTwo"]};const Al="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",El=["i","we","they"];let Il=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Al+" #Person",tag:"Person",reason:"randy-smith"},{match:Al+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Al}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:El,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:El,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:El,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),jl=null;var Gl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;jl=jl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(jl),e.uncache(),e}},model:{two:{matches:Il}},hooks:["postTagger"]},Nl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Dl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Nl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this},xl={api:function(e){e.prototype.swap=Dl}};return m.plugin(rl),m.plugin(Pl),m.plugin(Gl),m.plugin(xl),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs index d5f3e18f9..d277e6ed2 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1,2 +1,2 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]);return e(a,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let a=this.update([t[e]]);return a._cache=n[e],a}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const I=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},j=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:a,world:r}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:j(e)?j(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(I(t.update([u]).firstTerm()),k(h,u,d,a)):(I(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(a.insertAfter(e),r.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this};var C=T;var O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),a=this;if(e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V;var $={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const L=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=L(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=L(this.document,e);return this.document=t,this.all()}var r;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,M,W,K);var R={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Z=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Z)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},ge={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},pe=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(a[s].normal)&&([l,u]=a[s].normal.split(ce));let c=pe(o,a[s],l,u);!c&&ge.hasOwnProperty(u)&&(c=ge[u](a,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](a,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(c,e),Q(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var ye=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ve.test(l)){let e=l.replace(ve,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]};var Ae=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ee=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ge=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e};var De={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ae(e,this.world));var a;let r=je(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ae(e,this.world());return Ge(t)}}};const xe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Te=function(e,t){let{ptrs:n,byGroup:a}=e;return n=xe(n,t),Object.keys(a).forEach(e=>{a[e]=xe(a[e],t)}),{ptrs:n,byGroup:a}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Be=e=>e&&Ce(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Be(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e);if(Be(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Oe(e)){return e.fullPointer.length>0}if(Be(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var Ve={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Fe=function(e,t){return[e[0],e[1],t[2]]},$e=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Se=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Fe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Fe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Je=He;const Me=Object.assign({},ze,Ve,Je);Me.lookBehind=Me.before,Me.lookBefore=Me.before,Me.lookAhead=Me.after,Me.lookAfter=Me.after,Me.notIf=Me.ifNo;var Le=function(e){Object.assign(e.prototype,Me)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ke=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,qe=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(We),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Ue(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?a.push(e):a=a.concat(e.split(qe))}),a=Ue(a),a};const Ze=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),at=e=>e.substring(0,e.length-1),rt=function(e){return e=nt(e),e=at(e)},ot=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===et(e)&&(n.end=!0,e=at(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=at(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=at(e)),"?"===et(e)&&(n.optional=!0,e=at(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=rt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){_e.test(e)?(n.choices=e.split(_e),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=at(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=rt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=rt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=rt(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Ze.test(e)&&(e=e.replace(Ze,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&st.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e};var ut=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Qe(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),vt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||pt.test(e.post),hasComma:e=>yt(e,","),hasPeriod:e=>!0===yt(e,".")&&!1===yt(e,"..."),hasExclamation:e=>yt(e,"!"),hasQuestionMark:e=>yt(e,"?")||yt(e,"¿"),hasEllipses:e=>yt(e,"..")||yt(e,"…")||vt(e,"..")||vt(e,"…"),hasSemicolon:e=>yt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,a)):t.choices.some(t=>Pt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var At=Pt;const Et=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){It(e,e.t).length=a-e.t}return e.t=a,!0};const Nt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&At(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){It(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var xt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==At(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null};var Tt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=At(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ct=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Bt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Tt(e),a.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ct(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=It(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var zt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Et(e,r))if(!0!==At(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!xt(r))return null}if(!0!==e.optional)return null}else{if(!Bt(r))return null}else{if(!Bt(r))return null}else{if(!Bt(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!jt(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}};var Vt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Ft=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},$t=function(e,t,n){let a=zt(e,t,0,e.length);return a?(a=Ft(a,n),a):null};var St={api:Le,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Vt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Jt=/^#./,Mt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Lt={html:function(e){let{starts:t,ends:n}=Mt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Kt,""),Rt.test(r)&&(r=" "),r=r.replace(qt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Kt,""),r="-"===r?" ":r.replace(Wt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Ut.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Zt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Zt.clean=Zt.normal,Zt.reduced=Zt.root;var _t=Zt;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const an=function(e,t){return Object.assign({},e,t)},rn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,an(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,an(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,an(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=rn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};rn.sentences=rn.sentence,rn.clean=rn.normal,rn.reduced=rn.root;const on={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},tn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&rn[o]&&(r[o]=rn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on;var ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var un={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(un.blue("\n ──────")),t.forEach(e=>{console.log(un.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=un.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=un.blue(" │ ")+un.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return un[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var hn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(un.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(un.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(un.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(un.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${un.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const gn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var mn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&_t.hasOwnProperty(e)?t=Object.assign({},_t[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},wn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var kn=function(e,t){let n=wn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a};var Pn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:wn,splitAll:kn}}};var An=function(e,t){let n=e.concat(t),a=wn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>vn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var In=function(e,t){let n=wn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>vn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Nn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Gn={union:function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};Gn.and=Gn.union,Gn.intersection=function(e){e=jn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.not=function(e){e=jn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.difference=Gn.not,Gn.complement=function(){let e=this.all(),t=En(e.fullPointer,this.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(e,this.document),this.update(e)};var Dn={methods:Pn,api:function(e){Object.assign(e.prototype,Gn)}};const xn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Tn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(xn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(xn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=xn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Cn=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})};var On=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>a.has(e)).length>=e.minWant})})};var Bn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r};var zn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Tn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Cn(r,t.hooks);return o=On(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Bn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Fn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Sn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,a){let r=t.split(Fn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Sn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nHn(e,t,n,a))};var Jn=Hn;var Mn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Ln({id:e})),t}return[Ln({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Rn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Qn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Wn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Ln({});return e.forEach(e=>{if((e=Ln(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(qn(t=e).forEach(Ln),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return qn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},_n=function(e){let t=qn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Yn={text:Zn,txt:Zn,array:_n,flat:_n},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Yn.hasOwnProperty(t)?Yn[t](e):e},ea=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ta=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Un(e),!ta.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Ln({});return new g$1(t)}add(e,t={}){if(Rn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Ln({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Un(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return qn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return qn(this.json)}fillDown(){var e;return e=this.json,qn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Rn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ea(this.json);let e=qn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ea(this.json),Xn(this.json,e)}debug(){return ea(this.json),Xn(this.json,"debug"),this}}const na=function(e){let t=Qn(e);return new g$1(t)};na.prototype.plugin=function(e){e(this)};var aa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ra=function(e){if(aa.hasOwnProperty(e.id))return aa[e.id];if(aa.hasOwnProperty(e.is))return aa[e.is];let t=e._cache.parents.find(e=>aa[e]);return aa[t]};var oa=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ra(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ia=function(e){return e?"string"==typeof e?[e]:e:[]};var sa=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ia(e[t].children),e[t].not=ia(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var la={one:{setTag:Jn,unTag:Mn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=sa(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return na(t).cache().fillDown().out("array")}(Object.assign({},t,e));return oa(n)}}};const ua=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ca={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ua(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ua(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}};var ha=function(e){Object.assign(e.prototype,ca)};var da={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ga=new Set(["Auxiliary","Possessive"]);var ma={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ga.has(e)||!t.hasOwnProperty(n))return 1;if(ga.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:la,api:ha,lib:da};const pa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,fa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]);return e(a,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let a=this.update([t[e]]);return a._cache=n[e],a}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const I=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},j=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:a,world:r}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:j(e)?j(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(I(t.update([u]).firstTerm()),k(h,u,d,a)):(I(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(a.insertAfter(e),r.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this};var C=T;var O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),a=this;if(e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V;var $={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const L=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=L(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=L(this.document,e);return this.document=t,this.all()}var r;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,M,W,K);var R={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Z=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Z)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},ge={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},pe=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(a[s].normal)&&([l,u]=a[s].normal.split(ce));let c=pe(o,a[s],l,u);!c&&ge.hasOwnProperty(u)&&(c=ge[u](a,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](a,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(c,e),Q(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var ye=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ve.test(l)){let e=l.replace(ve,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]};var Ae=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ee=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ge=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e};var De={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ae(e,this.world));var a;let r=je(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ae(e,this.world());return Ge(t)}}};const xe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Te=function(e,t){let{ptrs:n,byGroup:a}=e;return n=xe(n,t),Object.keys(a).forEach(e=>{a[e]=xe(a[e],t)}),{ptrs:n,byGroup:a}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Be=e=>e&&Ce(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Be(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e);if(Be(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Oe(e)){return e.fullPointer.length>0}if(Be(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var Ve={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Fe=function(e,t){return[e[0],e[1],t[2]]},$e=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Se=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Fe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Fe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Je=He;const Me=Object.assign({},ze,Ve,Je);Me.lookBehind=Me.before,Me.lookBefore=Me.before,Me.lookAhead=Me.after,Me.lookAfter=Me.after,Me.notIf=Me.ifNo;var Le=function(e){Object.assign(e.prototype,Me)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ke=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,qe=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(We),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Ue(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?a.push(e):a=a.concat(e.split(qe))}),a=Ue(a),a};const Ze=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),at=e=>e.substring(0,e.length-1),rt=function(e){return e=nt(e),e=at(e)},ot=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===et(e)&&(n.end=!0,e=at(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=at(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=at(e)),"?"===et(e)&&(n.optional=!0,e=at(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=rt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){_e.test(e)?(n.choices=e.split(_e),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=at(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=rt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=rt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=rt(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Ze.test(e)&&(e=e.replace(Ze,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&st.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e};var ut=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Qe(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),vt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||pt.test(e.post),hasComma:e=>yt(e,","),hasPeriod:e=>!0===yt(e,".")&&!1===yt(e,"..."),hasExclamation:e=>yt(e,"!"),hasQuestionMark:e=>yt(e,"?")||yt(e,"¿"),hasEllipses:e=>yt(e,"..")||yt(e,"…")||vt(e,"..")||vt(e,"…"),hasSemicolon:e=>yt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,a)):t.choices.some(t=>Pt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var At=Pt;const Et=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){It(e,e.t).length=a-e.t}return e.t=a,!0};const Nt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&At(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){It(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var xt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==At(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null};var Tt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=At(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ct=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Bt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Tt(e),a.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ct(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=It(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var zt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Et(e,r))if(!0!==At(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!xt(r))return null}if(!0!==e.optional)return null}else{if(!Bt(r))return null}else{if(!Bt(r))return null}else{if(!Bt(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!jt(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}};var Vt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Ft=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},$t=function(e,t,n){let a=zt(e,t,0,e.length);return a?(a=Ft(a,n),a):null};var St={api:Le,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Vt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Jt=/^#./,Mt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Lt={html:function(e){let{starts:t,ends:n}=Mt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Kt,""),Rt.test(r)&&(r=" "),r=r.replace(qt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Kt,""),r="-"===r?" ":r.replace(Wt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Ut.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Zt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Zt.clean=Zt.normal,Zt.reduced=Zt.root;var _t=Zt;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const an=function(e,t){return Object.assign({},e,t)},rn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,an(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,an(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,an(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=rn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};rn.sentences=rn.sentence,rn.clean=rn.normal,rn.reduced=rn.root;const on={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},tn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&rn[o]&&(r[o]=rn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on;var ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var un={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(un.blue("\n ──────")),t.forEach(e=>{console.log(un.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=un.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=un.blue(" │ ")+un.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return un[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var hn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(un.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(un.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(un.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(un.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${un.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const gn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var mn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&_t.hasOwnProperty(e)?t=Object.assign({},_t[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},wn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var kn=function(e,t){let n=wn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a};var Pn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:wn,splitAll:kn}}};var An=function(e,t){let n=e.concat(t),a=wn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>vn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var In=function(e,t){let n=wn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>vn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Nn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Gn={union:function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};Gn.and=Gn.union,Gn.intersection=function(e){e=jn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.not=function(e){e=jn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.difference=Gn.not,Gn.complement=function(){let e=this.all(),t=En(e.fullPointer,this.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(e,this.document),this.update(e)};var Dn={methods:Pn,api:function(e){Object.assign(e.prototype,Gn)}};const xn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Tn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(xn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(xn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=xn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Cn=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})};var On=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>a.has(e)).length>=e.minWant})})};var Bn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r};var zn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Tn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Cn(r,t.hooks);return o=On(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Bn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,r)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Fn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Sn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,a){let r=t.split(Fn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Sn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nHn(e,t,n,a))};var Jn=Hn;var Mn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Ln({id:e})),t}return[Ln({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Rn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Qn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Wn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Ln({});return e.forEach(e=>{if((e=Ln(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(qn(t=e).forEach(Ln),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return qn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},_n=function(e){let t=qn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Yn={text:Zn,txt:Zn,array:_n,flat:_n},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Yn.hasOwnProperty(t)?Yn[t](e):e},ea=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ta=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Un(e),!ta.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Ln({});return new g$1(t)}add(e,t={}){if(Rn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Ln({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Un(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return qn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return qn(this.json)}fillDown(){var e;return e=this.json,qn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Rn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ea(this.json);let e=qn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ea(this.json),Xn(this.json,e)}debug(){return ea(this.json),Xn(this.json,"debug"),this}}const na=function(e){let t=Qn(e);return new g$1(t)};na.prototype.plugin=function(e){e(this)};var aa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ra=function(e){if(aa.hasOwnProperty(e.id))return aa[e.id];if(aa.hasOwnProperty(e.is))return aa[e.is];let t=e._cache.parents.find(e=>aa[e]);return aa[t]};var oa=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ra(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ia=function(e){return e?"string"==typeof e?[e]:e:[]};var sa=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ia(e[t].children),e[t].not=ia(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var la={one:{setTag:Jn,unTag:Mn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=sa(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return na(t).cache().fillDown().out("array")}(Object.assign({},t,e));return oa(n)}}};const ua=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ca={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ua(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ua(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}};var ha=function(e){Object.assign(e.prototype,ca)};var da={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ga=new Set(["Auxiliary","Possessive"]);var ma={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ga.has(e)||!t.hasOwnProperty(n))return 1;if(ga.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:la,api:ha,lib:da};const pa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,fa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex var ba=function(e){let t=[],n=e.split(fa);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const za=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Va=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fa=/['’]/,$a=/^[a-z]\.([a-z]\.)+/i,Sa=/^[-+.][0-9]/,Ha=/^'[0-9]{2}/;var Ja=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(za,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Sa.test(e)?"'"===n&&Ha.test(e)?(n="",t):"":(n="",t)))).replace(Va,r=>(a=r,Fa.test(r)&&/[sn]['’]$/.test(t)&&!1===Fa.test(n)?(a=a.replace(Fa,""),"'"):!0===$a.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ma=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const La=/([A-Z]\.)+[A-Z]?,?$/,Wa=/^[A-Z]\.,?$/,Ka=/[A-Z]{2,}('s|,)?$/,qa=/([a-z]\.)+[a-z]\.?$/;var Ra=function(e){return function(e){return!0===La.test(e)||!0===qa.test(e)||!0===Wa.test(e)||!0===Ka.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ua=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ma(a),a=n(a,t),a=Ra(a),e.normal=a};var Qa={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:Ia,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Oa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=xa(n),n=Ga(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ja(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Ua(e,t)}),n})}}}};var Za={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Ya={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{_a[t]=!0,Ya[t]="Abbreviation",void 0!==e[1]&&(Ya[t]=[Ya[t],e[1]])})});var Xa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let er={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},tr={};Object.keys(er).forEach((function(e){er[e].split("").forEach((function(t){tr[t]=e}))}));const nr=/\//,ar=/[a-z]\.[a-z]/i,rr=/[0-9]/;var or=function(e,t){let n=e.normal||e.text;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),nr.test(n)&&!ar.test(n)&&!rr.test(n)){let t=n.split(nr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ir=/^\p{Letter}+-\p{Letter}+$/u;var sr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ir.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var lr=function(e){let t=0,n=0,a=e.document;for(let e=0;eur(e,or),machine:e=>ur(e,sr),normal:e=>ur(e,Ua),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const gr={safe:!0,min:3};var mr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=hr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},gr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=dr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(yn),m.extend(St),m.extend(Dn),m.extend(ma),m.plugin(be),m.extend(cr),m.plugin(f),m.extend(De),m.extend(mr),m.extend(Pe),m.extend(Vn);var pr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},fr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const br="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",yr=br.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var vr=function(e){if(void 0!==yr[e])return yr[e];let t=0,n=1,a=36,r=1;for(;n=0;n--,r*=36){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var wr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Pr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ar(fr[e]);Nr.test(e)?Object.keys(t).forEach(t=>{if(Dr[t]=e,"Noun|Verb"===e){let e=jr(t,xr);Dr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Gr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Gr[e]="Emoticon"),delete Gr[""],delete Gr.null,delete Gr[" "];const Tr="Adjective";var Cr={beforeTags:{Determiner:Tr,Possessive:Tr},afterTags:{Adjective:Tr},beforeWords:{seem:Tr,seemed:Tr,seems:Tr,feel:Tr,feels:Tr,felt:Tr,appear:Tr,appears:Tr,appeared:Tr,also:Tr,over:Tr,under:Tr,too:Tr,it:Tr,but:Tr,still:Tr,really:Tr,quite:Tr,well:Tr,very:Tr,deeply:Tr,profoundly:Tr,extremely:Tr,so:Tr,badly:Tr,mostly:Tr,totally:Tr,awfully:Tr,rather:Tr,nothing:Tr,something:Tr,anything:Tr},afterWords:{too:Tr,also:Tr,or:Tr}};const Or="Gerund";var Br={beforeTags:{Adverb:Or,Preposition:Or,Conjunction:Or},afterTags:{Adverb:Or,Possessive:Or,Person:Or,Pronoun:Or,Determiner:Or,Copula:Or,Preposition:Or,Conjunction:Or,Comparative:Or},beforeWords:{been:Or,keep:Or,continue:Or,stop:Or,am:Or,be:Or,me:Or,began:Or,start:Or,starts:Or,started:Or,stops:Or,stopped:Or,help:Or,helps:Or,avoid:Or,avoids:Or,love:Or,loves:Or,loved:Or,hate:Or,hates:Or,hated:Or},afterWords:{you:Or,me:Or,her:Or,him:Or,them:Or,their:Or,it:Or,this:Or,there:Or,on:Or,about:Or,for:Or}};var zr={beforeTags:Object.assign({},Cr.beforeTags,Br.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Cr.afterTags,Br.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Cr.beforeWords,Br.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Cr.afterWords,Br.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Vr="Singular";var Fr={beforeTags:{Determiner:Vr,Possessive:Vr,Acronym:Vr,Noun:Vr,Adjective:Vr,PresentTense:Vr,Gerund:Vr,PastTense:Vr,Infinitive:Vr,Date:Vr},afterTags:{Value:Vr,Modal:Vr,Copula:Vr,PresentTense:Vr,PastTense:Vr,Demonym:Vr},beforeWords:{the:Vr,with:Vr,without:Vr,of:Vr,for:Vr,any:Vr,all:Vr,on:Vr,cut:Vr,cuts:Vr,save:Vr,saved:Vr,saves:Vr,make:Vr,makes:Vr,made:Vr,minus:Vr,plus:Vr,than:Vr,another:Vr,versus:Vr,neither:Vr,favorite:Vr,best:Vr,daily:Vr,weekly:Vr,linear:Vr,binary:Vr,mobile:Vr,lexical:Vr,technical:Vr,computer:Vr,scientific:Vr,formal:Vr},afterWords:{of:Vr,system:Vr,aid:Vr,method:Vr,utility:Vr,tool:Vr,reform:Vr,therapy:Vr,philosophy:Vr,room:Vr,authority:Vr,says:Vr,said:Vr,wants:Vr,wanted:Vr}};const $r={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Sr={beforeTags:Object.assign({},Cr.beforeTags,Fr.beforeTags,$r.beforeTags),afterTags:Object.assign({},Cr.afterTags,Fr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Fr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Fr.afterWords)};const Hr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Jr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Mr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Lr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wr={beforeTags:Object.assign({},Cr.beforeTags,Hr),afterTags:Object.assign({},Cr.afterTags,Jr),beforeWords:Object.assign({},Cr.beforeWords,Mr),afterWords:Object.assign({},Cr.afterWords,Lr)};const Kr="Infinitive";var qr={beforeTags:{Modal:Kr,Adverb:Kr,Negative:Kr,Plural:Kr},afterTags:{Determiner:Kr,Adverb:Kr,Possessive:Kr,Preposition:Kr},beforeWords:{i:Kr,we:Kr,you:Kr,they:Kr,to:Kr,please:Kr,will:Kr,have:Kr,had:Kr,would:Kr,could:Kr,should:Kr,do:Kr,did:Kr,does:Kr,can:Kr,must:Kr,us:Kr,me:Kr,he:Kr,she:Kr,it:Kr,being:Kr},afterWords:{the:Kr,me:Kr,you:Kr,him:Kr,her:Kr,them:Kr,it:Kr,a:Kr,an:Kr,up:Kr,down:Kr,by:Kr,out:Kr,off:Kr,under:Kr,when:Kr,all:Kr,to:Kr,because:Kr,although:Kr,before:Kr,how:Kr,otherwise:Kr,together:Kr,though:Kr,yet:Kr}};const Rr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ur={beforeTags:Object.assign({},Cr.beforeTags,qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Cr.afterTags,qr.afterTags,Rr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,qr.afterWords,{to:void 0})};const Qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Zr={},_r={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Yr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xr={beforeTags:Object.assign({},Br.beforeTags,Fr.beforeTags,Qr),afterTags:Object.assign({},Br.afterTags,Fr.afterTags,Zr),beforeWords:Object.assign({},Br.beforeWords,Fr.beforeWords,_r),afterWords:Object.assign({},Br.afterWords,Fr.afterWords,Yr)};var eo={beforeTags:Object.assign({},qr.beforeTags,Fr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qr.afterTags,Fr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qr.beforeWords,Fr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qr.afterWords,Fr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const to="Person";var no={beforeTags:{Honorific:to,Person:to,Preposition:to},afterTags:{Person:to,ProperNoun:to,Verb:to},ownTags:{ProperNoun:to},beforeWords:{hi:to,hey:to,yo:to,dear:to,hello:to},afterWords:{said:to,says:to,told:to,tells:to,feels:to,felt:to,seems:to,thinks:to,thought:to,spends:to,spendt:to,plays:to,played:to,sing:to,sang:to,learn:to,learned:to,wants:to,wanted:to}};const ao="Month",ro={beforeTags:{Date:ao,Value:ao},afterTags:{Date:ao,Value:ao},beforeWords:{by:ao,in:ao,on:ao,during:ao,after:ao,before:ao,between:ao,until:ao,til:ao,sometime:ao,of:ao,this:ao,next:ao,last:ao,previous:ao,following:ao},afterWords:{sometime:ao,in:ao,of:ao,until:ao,the:ao}};var oo={beforeTags:Object.assign({},no.beforeTags,ro.beforeTags),afterTags:Object.assign({},no.afterTags,ro.afterTags),beforeWords:Object.assign({},no.beforeWords,ro.beforeWords),afterWords:Object.assign({},no.afterWords,ro.afterWords)};const io={Place:"Place"},so={Place:"Place",Abbreviation:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const co={"Adj|Gerund":zr,"Adj|Noun":Sr,"Adj|Past":Wr,"Adj|Present":Ur,"Noun|Verb":eo,"Noun|Gerund":Xr,"Person|Noun":{beforeTags:Object.assign({},Fr.beforeTags,no.beforeTags),afterTags:Object.assign({},Fr.afterTags,no.afterTags),beforeWords:Object.assign({},Fr.beforeWords,no.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Fr.afterWords,no.afterWords)},"Person|Date":oo,"Person|Verb":{beforeTags:Object.assign({},no.beforeTags,qr.beforeTags),afterTags:Object.assign({},no.afterTags,qr.afterTags),beforeWords:Object.assign({},no.beforeWords,qr.beforeWords),afterWords:Object.assign({},no.afterWords,qr.afterWords)},"Person|Place":{beforeTags:Object.assign({},io,no.beforeTags),afterTags:Object.assign({},so,no.afterTags),beforeWords:Object.assign({},lo,no.beforeWords),afterWords:Object.assign({},uo,no.afterWords)}},ho=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};co["Plural|Verb"]={beforeWords:ho(co["Noun|Verb"].beforeWords,{}),afterWords:ho(co["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:ho(co["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:ho(co["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var go=co;const mo="Adjective",po="Infinitive",fo="PresentTense",bo="Singular",yo="PastTense",vo="Adverb",wo="Plural",ko="Verb",Po="LastName",Ao="Participle";var Eo=[null,null,{ea:bo,ia:"Noun",ic:mo,ly:vo,"'n":ko,"'t":ko},{oed:yo,ued:yo,xed:yo," so":vo,"'ll":"Modal","'re":"Copula",azy:mo,eer:"Noun",end:ko,ped:yo,ffy:mo,ify:po,ing:"Gerund",ize:po,ibe:po,lar:mo,mum:mo,nes:fo,nny:mo,ous:mo,que:mo,rol:bo,sis:bo,ogy:bo,oid:bo,ian:bo,zes:fo,eld:yo,ken:Ao,ven:Ao,ten:Ao,ect:po,ict:po,ign:po,ful:mo,bal:mo},{amed:yo,aped:yo,ched:yo,lked:yo,rked:yo,reed:yo,nded:yo,mned:mo,cted:yo,dged:yo,ield:bo,akis:Po,cede:po,chuk:Po,czyk:Po,ects:fo,ends:ko,enko:Po,ette:bo,wner:bo,fies:fo,fore:vo,gate:po,gone:mo,ices:wo,ints:wo,ruct:po,ines:wo,ions:wo,less:mo,llen:mo,made:mo,nsen:Po,oses:fo,ould:"Modal",some:mo,sson:Po,tion:bo,tage:"Noun",ique:bo,tive:mo,tors:"Noun",vice:bo,lier:bo,fier:bo,wned:yo,gent:bo,tist:bo,pist:bo,rist:bo,mist:bo,yist:bo,vist:bo,lite:bo,site:bo,rite:bo,mite:bo,bite:bo,mate:bo,date:bo,ndal:bo,vent:bo,uist:bo,gist:bo,note:bo,cide:bo,wide:mo,vide:po,ract:po,duce:po,pose:po,eive:po,lyze:po,lyse:po,iant:mo,nary:mo},{elist:bo,holic:bo,phite:bo,tized:yo,urned:yo,eased:yo,ances:wo,bound:mo,ettes:wo,fully:vo,ishes:fo,ities:wo,marek:Po,nssen:Po,ology:"Noun",osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:vo,where:vo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:bo,scent:bo,onist:bo,anist:bo,alist:bo,olist:bo,icist:bo,ounce:po,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:bo,dient:bo},{auskas:Po,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Po,borough:"Place",sdottir:Po}];const Io="Adjective";var jo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Io,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Io,tele:"Noun","pro-":Io,"mis-":"Verb","dis-":"Verb","pre-":Io},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Io,radio:"Noun",tetra:"Noun","omni-":Io,"post-":Io},{pseudo:Io,"extra-":Io,"hyper-":Io,"inter-":Io,"intra-":Io,"deca-":Io},{electro:"Noun"}];const No="Adjective",Go="Infinitive",Do="PresentTense",xo="Singular",To="PastTense",Co="Expression",Oo="LastName";var Bo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Oo],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,Co,"haha"]],c:[[/.[^aeiou]ic$/,No]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,To,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,To,"rammed"],[/.[aeiou][sg]hed$/,To,"gushed"],[/.[aeiou]red$/,To,"hired"],[/.[aeiou]r?ried$/,To,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,No,""],[/.[vrl]id$/,No,"livid"],[/..led$/,To,"hurled"],[/.[iao]sed$/,To,""],[/[aeiou]n?[cs]ed$/,To,""],[/[aeiou][rl]?[mnf]ed$/,To,""],[/[aeiou][ns]?c?ked$/,To,"bunked"],[/[aeiou]gned$/,To],[/[aeiou][nl]?ged$/,To],[/.[tdbwxyz]ed$/,To],[/[^aeiou][aeiou][tvx]ed$/,To],[/.[cdflmnprstv]ied$/,To,"emptied"]],e:[[/.[lnr]ize$/,Go,"antagonize"],[/.[^aeiou]ise$/,Go,"antagonise"],[/.[aeiou]te$/,Go,"bite"],[/.[^aeiou][ai]ble$/,No,"fixable"],[/.[^aeiou]eable$/,No,"maleable"],[/.[ts]ive$/,No,"festive"],[/[a-z]-like$/,No,"woman-like"]],h:[[/.[^aeiouf]ish$/,No,"cornish"],[/.v[iy]ch$/,Oo,"..ovich"],[/^ug?h+$/,Co,"ughh"],[/^uh[ -]?oh$/,Co,"uhoh"],[/[a-z]-ish$/,No,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Oo,"polish-male"]],k:[[/^(k){2}$/,Co,"kkkk"]],l:[[/.[gl]ial$/,No,"familial"],[/.[^aeiou]ful$/,No,"fitful"],[/.[nrtumcd]al$/,No,"natal"],[/.[^aeiou][ei]al$/,No,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,Co,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,No,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Co,"noooo"],[/^(yo)+$/,Co,"yoo"],[/^wo{2,}[pt]?$/,Co,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,Go],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,No],[/[aeiou].*ist$/,No],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Do],[/.[rln]ates$/,Do],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Do],[/.[aeiou]kes$/,Do],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Co]],v:[[/.[^aeiou][ai][kln]ov$/,Oo]],y:[[/.[cts]hy$/,No],[/.[st]ty$/,No],[/.[tnl]ary$/,No],[/.[oe]ry$/,xo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,No],[/...lly$/,"Adverb"],[/.[gk]y$/,No],[/[bszmp]{2}y$/,No],[/.[ai]my$/,No],[/[ea]{2}zy$/,No],[/.[^aeiou]ity$/,xo]]};const zo="Verb",Vo="Noun";var Fo={leftTags:[["Adjective",Vo],["Possessive",Vo],["Determiner",Vo],["Adverb",zo],["Pronoun",zo],["Value",Vo],["Ordinal",Vo],["Modal",zo],["Superlative",Vo],["Demonym",Vo],["Honorific","Person"]],leftWords:[["i",zo],["first",Vo],["it",zo],["there",zo],["not",zo],["because",Vo],["if",Vo],["but",Vo],["who",zo],["this",Vo],["his",Vo],["when",Vo],["you",zo],["very","Adjective"],["old",Vo],["never",zo],["before",Vo],["a","Singular"],["the",Vo],["been",zo]],rightTags:[["Copula",Vo],["PastTense",Vo],["Conjunction",Vo],["Modal",Vo]],rightWords:[["there",zo],["me",zo],["man","Adjective"],["only",zo],["him",zo],["it",zo],["were",Vo],["took",Vo],["himself",zo],["went",Vo],["who",Vo],["jr","Person"]]},$o={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},So={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ho={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Jo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Mo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Lo=/^.([0-9]+)/;var Wo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(Lo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Lo,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},qo=/^([0-9]+)/,Ro=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(qo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(qo,"")]}(n[0],n[1])})};var Uo=function(e={}){return(e=Object.assign({},e)).rules=Ro(e.rules),e.rules=Ko(e.rules),e.rev&&(e.rev=Ro(e.rev),e.rev=Ko(e.rev)),e.exceptions=Ro(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Qo=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const Zo=Uo({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),_o=Uo(Jo),Yo=Uo(So),Xo=Uo(Ho),ei=Qo(Zo),ti=Qo(_o),ni=Qo(Yo),ai=Qo(Xo),ri=Uo($o),oi=Uo(Mo);var ii={fromPast:Zo,fromPresent:_o,fromGerund:Yo,fromParticiple:Xo,toPast:ei,toPresent:ti,toGerund:ni,toParticiple:ai,toComparative:ri,toSuperlative:oi,fromComparative:Qo(ri),fromSuperlative:Qo(oi)},si=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),li=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ui=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(ci[t].forEach(n=>e[n]=t),e),{});var hi=ci;var di=function(e){let t=e.substring(e.length-3);if(!0===hi.hasOwnProperty(t))return hi[t];let n=e.substring(e.length-2);return!0===hi.hasOwnProperty(n)?hi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const gi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var mi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=di(e)),gi.hasOwnProperty(e))c=gi[e];else if("Participle"===n)c=Wo(l,i);else if("PastTense"===n)c=Wo(l,a);else if("PresentTense"===n)c=Wo(l,r);else{if("Gerund"!==n)return e;c=Wo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var pi=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Wo(i,n),PresentTense:Wo(i,a),Gerund:Wo(i,r),FutureTense:"will "+e},u=Wo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var fi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r)){return e.slice(0,n-a)+t[r.length][r]}}return null};const bi="ically",yi=new Set(["analyt"+bi,"chem"+bi,"class"+bi,"clin"+bi,"crit"+bi,"ecolog"+bi,"electr"+bi,"empir"+bi,"frant"+bi,"grammat"+bi,"ident"+bi,"ideolog"+bi,"log"+bi,"mag"+bi,"mathemat"+bi,"mechan"+bi,"med"+bi,"method"+bi,"method"+bi,"mus"+bi,"phys"+bi,"phys"+bi,"polit"+bi,"pract"+bi,"rad"+bi,"satir"+bi,"statist"+bi,"techn"+bi,"technolog"+bi,"theoret"+bi,"typ"+bi,"vert"+bi,"whims"+bi]),vi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],wi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),ki={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Pi=function(e){return e.endsWith("ly")?yi.has(e)?e.replace(/ically/,"ical"):wi.has(e)?null:ki.hasOwnProperty(e)?ki[e]:fi(e,vi)||e:null};const Ai=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ei={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ii=function(e){if(Ei.hasOwnProperty(e))return Ei[e];let t=fi(e,Ai);return t||e+"ly"};const ji=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ni={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Gi=new Set(["terrible","annoying"]);const Di=function(e,t){const n=t.two.models.toSuperlative;return Wo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Wo(e,n)};var Ti={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ci={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ti.hasOwnProperty(i)&&Ti[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:jr,nounToSingular:ui,verbToInfinitive:mi,getTense:di,verbConjugate:pi,adjToSuperlative:Di,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Wo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Wo(e,n)},advToAdjective:Pi,adjToAdverb:Ii,adjToNoun:function(e){if(Ni.hasOwnProperty(e))return Ni[e];if(Gi.has(e))return null;let t=fi(e,ji);return t||e+"ness"}}}};var Oi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Bi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var zi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Bi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Bi(a,"Infinitive","Verb"),Object.assign(s,l),l=Bi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Bi(o,"Adjective","Superlative"),Object.assign(s,l),l=Bi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Vi={two:{models:ii}};const Fi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},$i=function(e,t){const n={model:t,methods:Ci};let{lex:a,_multi:r}=Ci.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Si=function(e,t,n){let a=pi(e,Vi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Hi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Fi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Si(r,a,!1),"Adj|Present"===o&&(Si(r,a,!0),function(e,t,n){let a=Di(e,n);t[a]=t[a]||"Superlative";let r=xi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=mi(r,Vi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=mi(r,Vi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=$i(n,t)};let Ji={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:pr,models:ii,suffixPatterns:Eo,prefixPatterns:jo,endsWith:Bo,neighbours:Fo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Dr,clues:go,uncountable:{},orgWords:si}};Ji=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=$i(e.one.lexicon,e)).one.lexicon,e),e=Hi(e.two.switches,e),e=zi(e),e=Oi(e)}(Ji);var Mi=Ji;const Li=/^(under|over|mis|re|un|dis|semi)-?/;var Wi=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(Li.test(r.normal)){let e=r.normal.replace(Li,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Ki=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const qi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ri=new Set(["formulas","koalas","israelis","menus"]),Ui=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var Qi=function(e){if(!e||e.length<=3)return!1;if(Ri.has(e))return!0;let t=e[e.length-1];return qi.hasOwnProperty(t)?qi[t].find(t=>e.endsWith(t)):"s"===t&&!Ui.find(t=>e.endsWith(t))};const Zi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var _i=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Qi(e.normal)?Ki(e,"Plural","3-plural-guess"):Ki(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=di(e.normal);t&&Ki(e,t,"3-verb-tense-guess")}}(a)};const Yi=/^\p{Lu}[\p{Ll}'’]/u,Xi=/[0-9]/,es=["Date","Month","WeekDay","Unit"],ts=/^[IVXLCDM]{2,}$/,ns=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,as={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var rs=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===Yi.test(o)&&!1===Xi.test(o)?es.find(e=>a.tags.has(e))?null:(_i(e,t,n),a.tags.has("Noun")||a.tags.clear(),Ki(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ts.test(o)&&ns.test(o)&&!as[a.normal]?(Ki(a,"RomanNumeral","2-xvii"),!0):null};const os=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a)){return t[a.length][a]}}return null};var is=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=os(a.normal,n.two.suffixPatterns);if(null!==e)return Ki(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=os(a.implicit,n.two.suffixPatterns),null!==e))return Ki(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ss=/['‘’‛‵′`´]/,ls=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return Ki(a,e,"2-prefix"),a.confidence=.5,!0}return null};const hs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),ds=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!hs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},gs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ms=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ps=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(ds(r)||ds(o))return Ki(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(gs(r)||gs(o))return Ki(n,"Year","2-tagYear-close");if(ms(e[t-2])||ms(e[t+2]))return Ki(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return Ki(n,"Year","2-tagYear-noun")}}}return null};const fs=/^[A-Z]('s|,)?$/,bs=/^[A-Z-]+$/,ys=/([A-Z]\.)+[A-Z]?,?$/,vs=/[A-Z]{2,}('s|,)?$/,ws=/([a-z]\.)+[a-z]\.?$/,ks={I:!0,A:!0};var Ps=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===bs.test(n)||n.length>5||ks.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ys.test(n)&&!0!==ws.test(n)&&!0!==fs.test(n)&&!0!==vs.test(n))}(a,n)?(a.tags.clear(),Ki(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ks.hasOwnProperty(a.text)&&fs.test(a.text)?(a.tags.clear(),Ki(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Ki(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&bs.test(a.text)&&a.text.length<=6?(Ki(a,"Acronym","3-titlecase-acronym"),!0):null};const As=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Es=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Is=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||As(e[t-1],r),l=l||As(e[t+1],o),l=l||Es(e[t-1],a),l=l||Es(e[t+1],i),l)return Ki(s,l,"3-[neighbour]"),_i(e,t,n),e[t].confidence=.2,!0}return null};const js=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Ns=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&js(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&js(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Gs=function(e,t,n){0===e[t].tags.size&&(Ki(e[t],"Noun","3-[fallback]"),_i(e,t,n),e[t].confidence=.1)};const Ds=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Ts={"Adj|Gerund":(e,t)=>Ds(e,t),"Adj|Noun":(e,t)=>Ds(e,t),"Adj|Past":(e,t)=>Ds(e,t),"Adj|Present":(e,t)=>Ds(e,t),"Noun|Gerund":(e,t)=>Ds(e,t),"Noun|Verb":(e,t)=>Ds(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ds(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ds(e,t),"Person|Verb":(e,t)=>0!==t&&Ds(e,t)};const Cs="undefined"!=typeof process&&process.env?process.env:self.env||{},Os=/^(under|over|mis|re|un|dis|semi)-?/,Bs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Cs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},zs=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Cs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Vs={tagSwitch:Wi,checkSuffix:is,checkRegex:us,checkCase:rs,checkPrefix:cs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(Ki(o,"Verb","3-[prefix]"),Ki(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Ki(o,"Adjective","3-[prefix]"),Ki(o,"Prefix","3-[prefix]")))},checkYear:ps},Fs={checkAcronym:Ps,neighbours:Is,orgWords:Ns,nounFallback:Gs,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Os.test(l)&&!o[l]&&(l=l.replace(Os,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Bs(e[t+1],n.afterWords);return o=o||Bs(e[t-1],n.beforeWords),o=o||zs(e[t-1],n.beforeTags,r),o=o||zs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ts[o]&&(u=Ts[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Cs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},$s=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Js={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Ms={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Xs=/'/;var el=function(e,t){let n=e[t].normal.split(Xs)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const tl=/'/;var nl=function(e,t){let n=e[t].normal.split(tl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var al=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const rl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ol={in:!0,by:!0,for:!0};var il=(e,t)=>{let n=e[t];if(rl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!a.tags.has("Possessive")&&!(a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ol[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const sl=/'/,ll=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},ul={d:(e,t)=>nl(e,t),t:(e,t)=>al(e,t),s:(e,t,n)=>il(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):el(e,t)},cl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var hl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===sl.test(a[o].normal)&&([,i]=a[o].normal.split(sl));let s=null;ul.hasOwnProperty(i)&&(s=ul[i](a,o,t)),s&&(s=cl(s,e),Ys(n,[r,o],s),ll(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=_s.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Zs},hooks:["contractionTwo"]};const dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const gl=["i","we","they"];let ml=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:dl+" #Person",tag:"Person",reason:"randy-smith"},{match:dl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${dl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:gl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:gl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:gl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let pl=null;var fl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;pl=pl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(pl),e.uncache(),e}},model:{two:{matches:ml}},hooks:["postTagger"]};var bl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var yl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?bl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this};var vl={api:function(e){e.prototype.swap=yl}};m.plugin(Rs),m.plugin(hl),m.plugin(fl),m.plugin(vl);export{m as default}; diff --git a/changelog.md b/changelog.md index 41825646e..5209d0f7b 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,8 @@ compromise uses semver, and pushes to npm and github frequently While all _Major_ releases should be reviewed, our only _large_ releases are **v6** in 2016 **v12** in 2019 and **v14** in 2022. Others have been mostly incremental. #### 14.3.1 [June 2021] diff --git a/data/lexicon/numbers/units.js b/data/lexicon/numbers/units.js index b52469294..9b679b462 100644 --- a/data/lexicon/numbers/units.js +++ b/data/lexicon/numbers/units.js @@ -12,15 +12,12 @@ export default [ 'm³', 'cubic meter', 'cubic meters', - 'm3', 'dm³', 'cubic decimeter', 'cubic decimeters', - 'dm3', 'cm³', 'cubic centimeter', 'cubic centimeters', - 'cm3', 'litre', 'litres', 'liter', @@ -37,15 +34,12 @@ export default [ 'in³', 'cubic inch', 'cubic inchs', - 'in3', 'ft³', 'cubic foot', 'cubic foots', - 'ft3', 'yd³', 'cubic yard', 'cubic yards', - 'yd3', // 'gal', 'gallon', 'gallons', @@ -125,44 +119,35 @@ export default [ 'km²', 'square kilometer', 'square kilometers', - 'km2', 'm²', 'square meter', 'square meters', - 'm2', 'dm²', 'square decimeter', 'square decimeters', - 'dm2', 'cm²', 'square centimeter', 'square centimeters', - 'cm2', 'mm²', 'square millimeter', 'square millimeters', - 'mm2', 'hectare', 'hectares', 'mile²', 'square mile', 'square miles', - 'mile2', 'in²', 'square inch', 'square inchs', - 'in2', 'yd²', 'square yard', 'square yards', - 'yd2', 'ft²', 'square foot', 'square foots', // 'sq ft', 'square feet', 'square feets', - 'ft2', 'acre', 'acres', // 'hz', diff --git a/issues.js b/issues.js new file mode 100644 index 000000000..efdc0c56e --- /dev/null +++ b/issues.js @@ -0,0 +1,222 @@ +/* eslint-disable no-console, no-unused-vars */ +import nlp from './src/two.js' +import plg from './plugins/dates/src/plugin.js' +nlp.plugin(plg) + +let txt = '' +// tagging/root issues June 10 +// "Okay, okay, okay should I be scared?" +// "This is when I started to get scared." + +// "A 40-year-old man called me swell." +// "that's just not swell" + +txt = "Let’s get you into wardrobe for a fitting." +// txt = "I was an expert" +// txt = "definitely worth a rental." +// txt = "keeping the matter a secret" + +// txt = "My pants don't even fit right" +// txt = "In a baseball hat fit for a queen" +// txt = "Srinath will be fit in three weeks" +// txt = "does the different part fit together" + +// txt = "License fee for beach vendors hiked" +// txt = "TTC to hike fares by 10 cents in March" + +// txt = "He deserted from the Dragoons at" +// txt = "banks wear deserted look" + +// txt = "CBI catches DD acting director taking bribe" +// txt = "How do I keep kissing you, and catch my breath?" + +// txt = " throw stones, Dick, said Jaqueline." +// txt = "Loblaws reducing food prices at Toronto stores" +// txt = "Stock prices closed higher in Stockholm" + +// txt = `Upload documents required to verify your eligibility` + +txt = `It sure seemed that way.` +txt = `I am not sure when to take.` +txt = `Pretty sure my arm is broke` +txt = `Not sure about the details.` +txt = `Sure you don't wanna pretzel?` +txt = `You, you sure you need shoes?` +txt = `Sure enough, no one was there.` +txt = `Are you sure you wanna do this?` +txt = `make sure that it's truly lost.` +txt = `You sure this is what you want?` + + +txt = `she'll come around` +txt = `` +txt = `` +txt = ` wade boggs was cool` + +let doc = nlp(txt).debug() + + +// let matches = [ +// { match: m } +// ] +// let net = nlp.buildNet(matches) +// doc.sweep(net).view.debug() + + + + +// banks wear +// %Plural|Verb% %Noun|Verb% + +// let doc = nlp(`he will have been walking`).debug() +// let doc = nlp(`Bob has handled`).debug() +// doc.match('have').tag('Auxiliary') +// doc.verbs().toPresent() +// console.log(doc.has('he has really walked')) +// let net = nlp.buildNet(matches) +// console.log(net) +// console.log(net.hooks) +// let doc = nlp(txt) +// let doc = nlp(`To sit on my throne as the Prince of Bel Air`) +// let m = doc.match(net).debug() +// doc.compute('root') +// console.log(doc.text('root')) +// doc.debug() +// doc.verbs().toFutureTense() +// doc.match(net).debug() +// console.log(doc.has(net)) +// doc.debug() +// console.log(doc.has('re-purpose')) + +// let txt = `follow-up` +// let doc = nlp(txt) +// console.log(nlp.parseMatch('re-purpose')) +// doc.debug() +// doc.match(txt).debug() + +// console.log(usedWords) +// let doc = nlp('Maris Piper potatoes') +// doc.nouns().toSingular() +// console.log(doc.text()) + +// nlp("Anna's eating lunch.").debug() + +// let doc = nlp(`i'm good`) +// doc.verbs().toPresent() +// doc.debug() + + + +// verbphrase parsing issue: +// let doc +// doc = nlp('i was not being walked').debug() +// doc = nlp('i was not really being walked').debug() +// doc.verbs().toInfinitive() +// doc.debug() + +// dashes +// let doc = nlp('inter-species communication') +// console.log(doc.json()[0]) +// doc.debug() +// let doc = nlp('counter-argument') +// console.log(doc.json()[0]) +// console.log(doc.get()) +// doc.match('counter-argument').debug() +// console.log(nlp.parseMatch('counter-argument')) +// console.log(nlp.parseMatch(`i've`)) + +// import fs from 'fs' +// let file = `/Users/spencer/data/infinite-jest/infinite-jest.txt` +// // file = `/Users/spencer/mountain/compromise/plugins/speed/tests/files/freshPrince.txt` +// let txt = fs.readFileSync(file).toString() +// let begin = new Date() +// // txt = 'his complex' +// let doc = nlp(txt).match('every single #Noun') +// // doc.debug('chunks') +// // console.log(doc.match('this').json()[0].terms) +// console.log('done') +// let end = new txt = `()` +// console.log((end.begin.getTime()) / 1000) + +// let doc = nlp('one two three four') +// let m = doc.match('one two three') +// m.tag('. #Person .') +// console.log(doc._cache) +// doc.match('#Person').debug() + +// let net = nlp.buildNet([ +// { match: 'every single #Noun' }, +// { match: 'not (a|one) #Singular' }, +// ]) +// let doc = nlp('i saw every single house. i met none. ') +// doc.match(net).debug() +// let m = nlp([['first.', 'foo bar']]).debug() +// let matches = [ +// { match: 'third' }, +// ] +// let net = nlp.buildNet(matches) +// let doc = nlp(`first. second. third`) +// doc = doc.reverse() +// let res = doc.sweep(net) +// console.log(res.view) +// res.view.soften() +// res.view.debug() +// res.found[0].view.debug() + + + +// res.found[0].view.debug() + +// doc = nlp(`first. second. third`) +// doc = doc.reverse() +// res = doc.match('third') +// console.log(res) + + + +// console.log(res.found[0].view) + +// let doc = nlp(`first. second. third`) +// doc = doc.reverse() +// let m = doc.match('third') +// m.soften() +// console.log(m) +// m.debug() + + + +// conjugation issues +// let txt = '' +// txt = 'i will go on a boat' +// txt = `why is the doc` +// txt = 'take part' +// txt = 'fulfil' +// txt = 'outgrow' +// txt = 'prod' +// txt = 'shun' +// txt = 'slam' +// txt = 'collide' +// let doc = nlp(txt) +// doc.debug() +// console.log(doc.verbs().conjugate()[0]) + + + +// nlp('it is green and he is friendly.').sentences().toFutureTense().debug() + +// isSingular bug +// nlp(`i saw the game that the Toronto Maple Leafs won`).verbs().isSingular().debug() + + +// contraction issue +// let txt = `doesn't there's i'd i'll` +// let doc = nlp(txt).debug() + + + +// let doc = nlp("the exploding returns") +// console.log(nlp.parseMatch('québec')) +// doc.debug() +// const doc = nlp("Steve talked to Johnson LLC") +// doc.debug() +// Normal: some common drugs conflatin aspirin statin statins ivermectin amoxicillin augmentin diff --git a/scratch.js b/scratch.js index bc0935e25..4741d23cb 100644 --- a/scratch.js +++ b/scratch.js @@ -1,218 +1,15 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/two.js' +import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) // nlp.verbose('tagger') let txt = '' -// tagging/root issues June 10 -// "Okay, okay, okay should I be scared?" -// "This is when I started to get scared." - -// "A 40-year-old man called me swell." -// "that's just not swell" - -txt = "Let’s get you into wardrobe for a fitting." -// txt = "I was an expert" -// txt = "definitely worth a rental." -// txt = "keeping the matter a secret" - -// txt = "My pants don't even fit right" -// txt = "In a baseball hat fit for a queen" -// txt = "Srinath will be fit in three weeks" -// txt = "does the different part fit together" - -// txt = "License fee for beach vendors hiked" -// txt = "TTC to hike fares by 10 cents in March" - -// txt = "He deserted from the Dragoons at" -// txt = "banks wear deserted look" - -// txt = "CBI catches DD acting director taking bribe" -// txt = "How do I keep kissing you, and catch my breath?" - -// txt = " throw stones, Dick, said Jaqueline." -// txt = "Loblaws reducing food prices at Toronto stores" -// txt = "Stock prices closed higher in Stockholm" - -// txt = `Upload documents required to verify your eligibility` - -txt = `It sure seemed that way.` -txt = `I am not sure when to take.` -txt = `Pretty sure my arm is broke` -txt = `Not sure about the details.` -txt = `Sure you don't wanna pretzel?` -txt = `You, you sure you need shoes?` -txt = `Sure enough, no one was there.` -txt = `Are you sure you wanna do this?` -txt = `make sure that it's truly lost.` -txt = `You sure this is what you want?` - -// let txt = `There are no open wounds ` - -// let matches = [ -// { match: m } -// ] -// let net = nlp.buildNet(matches) - - - - - -// banks wear -// %Plural|Verb% %Noun|Verb% - -// let doc = nlp(`he will have been walking`).debug() -// let doc = nlp(`Bob has handled`).debug() -// doc.match('have').tag('Auxiliary') -// doc.verbs().toPresent() -// console.log(doc.has('he has really walked')) -// let net = nlp.buildNet(matches) -// console.log(net) -// console.log(net.hooks) -// let doc = nlp(txt) -// let doc = nlp(`To sit on my throne as the Prince of Bel Air`) -// let m = doc.match(net).debug() -// doc.compute('root') -// console.log(doc.text('root')) -// doc.debug() -// doc.verbs().toFutureTense() -// doc.match(net).debug() -// console.log(doc.has(net)) -// doc.debug() -// console.log(doc.has('re-purpose')) - -// let txt = `follow-up` -// let doc = nlp(txt) -// console.log(nlp.parseMatch('re-purpose')) -// doc.debug() -// doc.match(txt).debug() - -// console.log(usedWords) -// let doc = nlp('Maris Piper potatoes') -// doc.nouns().toSingular() -// console.log(doc.text()) - -// nlp("Anna's eating lunch.").debug() - -// let doc = nlp(`i'm good`) -// doc.verbs().toPresent() -// doc.debug() - - - -// verbphrase parsing issue: -// let doc -// doc = nlp('i was not being walked').debug() -// doc = nlp('i was not really being walked').debug() -// doc.verbs().toInfinitive() -// doc.debug() - -// dashes -// let doc = nlp('inter-species communication') -// console.log(doc.json()[0]) -// doc.debug() -// let doc = nlp('counter-argument') -// console.log(doc.json()[0]) -// console.log(doc.get()) -// doc.match('counter-argument').debug() -// console.log(nlp.parseMatch('counter-argument')) -// console.log(nlp.parseMatch(`i've`)) - -// import fs from 'fs' -// let file = `/Users/spencer/data/infinite-jest/infinite-jest.txt` -// // file = `/Users/spencer/mountain/compromise/plugins/speed/tests/files/freshPrince.txt` -// let txt = fs.readFileSync(file).toString() -// let begin = new Date() -// // txt = 'his complex' -// let doc = nlp(txt).match('every single #Noun') -// // doc.debug('chunks') -// // console.log(doc.match('this').json()[0].terms) -// console.log('done') -// let end = new txt = `()` -// console.log((end.begin.getTime()) / 1000) - -// let doc = nlp('one two three four') -// let m = doc.match('one two three') -// m.tag('. #Person .') -// console.log(doc._cache) -// doc.match('#Person').debug() - -// let net = nlp.buildNet([ -// { match: 'every single #Noun' }, -// { match: 'not (a|one) #Singular' }, -// ]) -// let doc = nlp('i saw every single house. i met none. ') -// doc.match(net).debug() -// let m = nlp([['first.', 'foo bar']]).debug() -// let matches = [ -// { match: 'third' }, -// ] -// let net = nlp.buildNet(matches) -// let doc = nlp(`first. second. third`) -// doc = doc.reverse() -// let res = doc.sweep(net) -// console.log(res.view) -// res.view.soften() -// res.view.debug() -// res.found[0].view.debug() - - - -// res.found[0].view.debug() - -// doc = nlp(`first. second. third`) -// doc = doc.reverse() -// res = doc.match('third') -// console.log(res) - - - -// console.log(res.found[0].view) - -// let doc = nlp(`first. second. third`) -// doc = doc.reverse() -// let m = doc.match('third') -// m.soften() -// console.log(m) -// m.debug() - - - -// conjugation issues -// let txt = '' -// txt = 'i will go on a boat' -// txt = `why is the doc` -// txt = 'take part' -// txt = 'fulfil' -// txt = 'outgrow' -// txt = 'prod' -// txt = 'shun' -// txt = 'slam' -// txt = 'collide' -// let doc = nlp(txt) -// doc.debug() -// console.log(doc.verbs().conjugate()[0]) - - - -// nlp('it is green and he is friendly.').sentences().toFutureTense().debug() - -// isSingular bug -// nlp(`i saw the game that the Toronto Maple Leafs won`).verbs().isSingular().debug() - - -// contraction issue -// let txt = `doesn't there's i'd i'll` -// let doc = nlp(txt).debug() - - - -// let doc = nlp("the exploding returns") -// console.log(nlp.parseMatch('québec')) -// doc.debug() -// const doc = nlp("Steve talked to Johnson LLC") -// doc.debug() -// Normal: some common drugs conflatin aspirin statin statins ivermectin amoxicillin augmentin - +txt = '12µs' +let doc = nlp(txt) +doc.debug() +let m = doc.numbers() +m.units().debug() +console.log(m.units().text('root')) +console.log(doc.json()[0].terms) \ No newline at end of file diff --git a/src/1-one/contraction-one/compute/contractions/index.js b/src/1-one/contraction-one/compute/contractions/index.js index a08f2c5ee..01951cfed 100644 --- a/src/1-one/contraction-one/compute/contractions/index.js +++ b/src/1-one/contraction-one/compute/contractions/index.js @@ -3,6 +3,7 @@ import apostropheD from './apostrophe-d.js' import apostropheT from './apostrophe-t.js' import french from './french.js' import numberRange from './number-range.js' +import numberUnit from './number-unit.js' const byApostrophe = /'/ const numDash = /^[0-9][^-–—]*[-–—].*?[0-9]/ @@ -74,6 +75,7 @@ const contractions = (view) => { let { world, document } = view const { model, methods } = world let list = model.one.contractions || [] + let units = new Set(model.one.units || []) // each sentence document.forEach((terms, n) => { // loop through terms backwards @@ -113,6 +115,13 @@ const contractions = (view) => { } reTag(document[n], view, i, words.length) } + continue + } + // split-apart '4km' + words = numberUnit(terms, i, units) + if (words) { + words = toDocs(words, view) + splice(document, [n, i], words) } } }) diff --git a/src/1-one/contraction-one/compute/contractions/number-unit.js b/src/1-one/contraction-one/compute/contractions/number-unit.js new file mode 100644 index 000000000..acd193e81 --- /dev/null +++ b/src/1-one/contraction-one/compute/contractions/number-unit.js @@ -0,0 +1,15 @@ +const numUnit = /^([0-9.,+-]+)([a-z°²³µ/]+)$/i + +const numberUnit = function (terms, i, units) { + let term = terms[i] + let parts = term.text.match(numUnit) + if (parts !== null) { + // is it a recognized unit, like 'km'? + let unit = parts[2].toLowerCase().trim() + if (units.has(unit)) { + return [parts[1], unit] //split it + } + } + return null +} +export default numberUnit diff --git a/src/1-one/contraction-one/model/index.js b/src/1-one/contraction-one/model/index.js index d7b54548f..f3f738f45 100644 --- a/src/1-one/contraction-one/model/index.js +++ b/src/1-one/contraction-one/model/index.js @@ -1,2 +1,4 @@ import contractions from './contractions.js' -export default { one: { contractions } } +import units from './units.js' + +export default { one: { contractions, units } } diff --git a/src/1-one/contraction-one/model/units.js b/src/1-one/contraction-one/model/units.js new file mode 100644 index 000000000..d690c61df --- /dev/null +++ b/src/1-one/contraction-one/model/units.js @@ -0,0 +1,79 @@ +// these strings will be split from a number, +// 'km' -> "2km" = [2, 'km'] +// subset of ./data/lexicon/numbers/units.js +export default [ + // length + 'in',//inch + 'ft',//foot + 'yd',//yard + 'mi',//mile + 'km',//kilometer + 'cm',//centimeter + 'mm',//millimeter + + // mass + 'kg',//kilogram + 'kgs', + 'lb',//pounds + 'lbs', + 'oz',//ounce + + // area + 'sqft',//square foot + 'km²', + 'm²', + 'cm²', + 'in²', + 'ft²', + 'yd²', + 'ft³', + 'm³', + 'cm³', + 'in³', + 'yd³', + + // volume + 'gal',//gallon + 'tsp',//teaspoon + + // speed + 'kph', //kilometer per hour + 'km/h', + 'mph',//miles per hour + 'mp/h', + + // temperature + '°', + '°c', + '°f', + + // time + 'µs', + 'sec', + 'secs', + 'min', + 'mins', + 'hr', + 'hrs', + 'yr',//years + 'yrs', + + // software + 'dpi', + 'ppi', + 'px', + 'kb', + 'mb', + 'gb', + + // misc + 'volt', + 'volts', + 'watt', + 'watts', + 'volts', + 'ppm',//parts per million + 'btu', + 'hz',//hertz + 'hp'//horsepower +] \ No newline at end of file diff --git a/src/1-one/output/api/out.js b/src/1-one/output/api/out.js index e5c1ffe39..27ea85d0b 100644 --- a/src/1-one/output/api/out.js +++ b/src/1-one/output/api/out.js @@ -32,6 +32,9 @@ const out = function (method) { if (method === 'normal') { return this.text('normal') } + if (method === 'root') { + return this.text('root') + } if (method === 'machine' || method === 'reduced') { return this.text('machine') } diff --git a/src/1-one/tokenize/methods/03-whitespace/tokenize.js b/src/1-one/tokenize/methods/03-whitespace/tokenize.js index 7550a0ca9..224f35b34 100644 --- a/src/1-one/tokenize/methods/03-whitespace/tokenize.js +++ b/src/1-one/tokenize/methods/03-whitespace/tokenize.js @@ -1,7 +1,7 @@ //all punctuation marks, from https://en.wikipedia.org/wiki/Punctuation //we have slightly different rules for start/end - like #hashtags. const startings = - /^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/ + /^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/ const endings = /[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/ const hasApostrophe = /['’]/ diff --git a/src/1-one/tokenize/model/unicode.js b/src/1-one/tokenize/model/unicode.js index 4d1b666e4..0d3818417 100644 --- a/src/1-one/tokenize/model/unicode.js +++ b/src/1-one/tokenize/model/unicode.js @@ -29,7 +29,7 @@ let compact = { r: 'ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ', s: 'ŚśŜŝŞşŠšƧƨȘșȿЅѕ', t: 'ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт', - u: 'µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ', + u: 'ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ', v: 'νѴѵѶѷ', w: 'ŴŵƜωώϖϢϣШЩшщѡѿ', x: '×ΧχϗϰХхҲҳӼӽӾӿ', diff --git a/src/2-two/preTagger/model/lexicon/misc.js b/src/2-two/preTagger/model/lexicon/misc.js index 338b87cc4..0b8bd9c2b 100644 --- a/src/2-two/preTagger/model/lexicon/misc.js +++ b/src/2-two/preTagger/model/lexicon/misc.js @@ -7,6 +7,23 @@ let misc = { g8: 'Organization', vh1: 'Organization', + 'km2': 'Unit', + 'm2': 'Unit', + 'dm2': 'Unit', + 'cm2': 'Unit', + 'mm2': 'Unit', + 'mile2': 'Unit', + 'in2': 'Unit', + 'yd2': 'Unit', + 'ft2': 'Unit', + 'm3': 'Unit', + 'dm3': 'Unit', + 'cm3': 'Unit', + 'in3': 'Unit', + 'ft3': 'Unit', + 'yd3': 'Unit', + + // ampersands 'at&t': 'Organization', 'black & decker': 'Organization', diff --git a/src/3-three/numbers/numbers/format/suffix.js b/src/3-three/numbers/numbers/format/suffix.js index 728828473..f02768ae0 100644 --- a/src/3-three/numbers/numbers/format/suffix.js +++ b/src/3-three/numbers/numbers/format/suffix.js @@ -15,9 +15,9 @@ const prefixes = { const suffixes = { '%': 'percent', // s: 'seconds', - cm: 'centimetres', - km: 'kilometres', - ft: 'feet', + // cm: 'centimetres', + // km: 'kilometres', + // ft: 'feet', '°': 'degrees' } diff --git a/tests/three/numbers/misc.test.js b/tests/three/numbers/misc.test.js index e51ca829d..a0e17f6b5 100644 --- a/tests/three/numbers/misc.test.js +++ b/tests/three/numbers/misc.test.js @@ -97,16 +97,20 @@ test('number-text mixes:', function (t) { }) test('prefix/suffix:', function (t) { - let doc = nlp('$7,938').numbers().add(1) + let doc = nlp('$7,938') + doc.numbers().add(1) t.equal(doc.text(), '$7,939', here + 'add money') - doc = nlp('7,938kg').numbers().minus(1) - t.equal(doc.text(), '7,937kg', here + 'minus w/ unit') + doc = nlp('7,938kg') + doc.numbers().minus(1) + t.equal(doc.text(), '7,937 kg', here + 'minus w/ unit') - doc = nlp('938.4cm').numbers().minus(1) - t.equal(doc.text(), '937.4cm', here + 'minus w/ decimal') + doc = nlp('938.4cm') + doc.numbers().minus(1) + t.equal(doc.text(), '937.4 cm', here + 'minus w/ decimal') - doc = nlp('33rd').numbers().add(1) + doc = nlp('33rd') + doc.numbers().add(1) t.equal(doc.text(), '34th', here + 'add ordinal') t.end() }) diff --git a/tests/three/numbers/prefix.test.js b/tests/three/numbers/prefix.test.js index 69d241b38..ca059b43d 100644 --- a/tests/three/numbers/prefix.test.js +++ b/tests/three/numbers/prefix.test.js @@ -23,9 +23,9 @@ test('suffix:', function (t) { // doc.values().toText() // t.equals(doc.text(), 'it was forty seven million five hundred thousand dollars', here + '$47.5m') - doc = nlp('i ran 25km uphill') - doc.values().toText() - t.equals(doc.text(), 'i ran twenty five kilometres uphill', here + '25km') + // doc = nlp('i ran 25km uphill') + // doc.values().toText() + // t.equals(doc.text(), 'i ran twenty five km uphill', here + '25km') // doc = nlp('it was 400s!') // doc.values().toText() diff --git a/tests/three/numbers/units.test.js b/tests/three/numbers/units.test.js index 263336cb0..665f6a789 100644 --- a/tests/three/numbers/units.test.js +++ b/tests/three/numbers/units.test.js @@ -2,22 +2,40 @@ import test from 'tape' import nlp from '../_lib.js' const here = '[three/number-units] ' -test('units-basic:', function (t) { +test('units-parse:', function (t) { let arr = [ - // ['33km', 'km'], - ['33 km', 'km'], - ['40,000 ft', 'ft'], - ['40,000 feet', 'feet'], - ['seven hundred litres', 'litres'], - ['one litre', 'litre'], - ['0.4 meter', 'meter'], - // ['3 km2', 'km2'], - ['3 km²', 'km²'], - // ['44 °c', '°c'], + ['33km', 33, 'km'], + ['33 km', 33, 'km'], + ['40,000 ft', 40000, 'ft'], + ['40,000ft', 40000, 'ft'], + ['40,000 feet', 40000, 'feet'], + ['seven hundred litres', 700, 'litres'], + ['one litre', 1, 'litre'], + ['0.4 meter', 0.4, 'meter'], + ['3 km2', 3, 'km2'], + ['3 km²', 3, 'km²'], + ['3km²', 3, 'km²'], + ['44°c', 44, '°c'], + ['44 °c', 44, '°c'], + ['12µs', 12, 'µs'], + ['12km/h', 12, 'km/h'], ] arr.forEach(a => { - let m = nlp(a[0]).numbers().units() - t.equal(m.out('normal'), a[1], here + a[0]) + let m = nlp(a[0]).numbers() + t.equal(m.get()[0], a[1], here + ' [num] ' + a[0]) + t.equal(m.units().text('root'), a[2], here + ' [unit] ' + a[0]) }) t.end() +}) + + +test('units-convert:', function (t) { + let doc = nlp('we covered 3 km² in total') + doc.numbers().toText() + t.equal(doc.text(), 'we covered three km² in total', here + 'space unit') + + doc = nlp('we covered 3km² in total') + doc.numbers().toText() + t.equal(doc.text(), 'we covered three km² in total', here + 'no space unit') + t.end() }) \ No newline at end of file From 9ecc857117f2a0832d36eddf225a4ae0ee6035bc Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 27 Jun 2022 15:35:49 -0400 Subject: [PATCH 03/27] units are okay, all tests passing --- changelog.md | 4 +- data/lexicon/index.js | 2 + data/lexicon/misc.js | 1 + data/lexicon/numbers/units.js | 55 +++---------- data/lexicon/switches/unit-noun.js | 34 ++++++++ scratch.js | 23 ++++-- .../compute/contractions/index.js | 3 +- .../compute/contractions/number-unit.js | 18 ++++- src/1-one/contraction-one/model/index.js | 3 +- src/1-one/contraction-one/model/units.js | 79 ------------------- src/1-one/match/api/match.js | 48 +++++------ .../tokenize/model/abbreviations/units.js | 7 +- src/2-two/postTagger/model/numbers/numbers.js | 12 +-- .../compute/tagger/3rd-pass/looksPlural.js | 3 + src/2-two/preTagger/model/_expand/index.js | 2 + src/2-two/preTagger/model/clues/index.js | 2 + src/2-two/preTagger/model/clues/unit-noun.js | 9 +++ src/2-two/preTagger/model/lexicon/_data.js | 9 ++- src/2-two/preTagger/model/models/_data.js | 4 +- .../preTagger/model/regex/regex-numbers.js | 2 +- src/3-three/numbers/numbers/api.js | 1 + src/3-three/numbers/numbers/parse/index.js | 10 ++- tests/three/numbers/units.test.js | 42 +++++++++- tests/two/match.test.js | 14 ++++ tests/two/number-match.test.js | 2 +- 25 files changed, 195 insertions(+), 194 deletions(-) create mode 100644 data/lexicon/switches/unit-noun.js delete mode 100644 src/1-one/contraction-one/model/units.js create mode 100644 src/2-two/preTagger/model/clues/unit-noun.js diff --git a/changelog.md b/changelog.md index 5209d0f7b..f15676220 100644 --- a/changelog.md +++ b/changelog.md @@ -6,8 +6,8 @@ compromise uses semver, and pushes to npm and github frequently While all _Major_ releases should be reviewed, our only _large_ releases are **v6** in 2016 **v12** in 2019 and **v14** in 2022. Others have been mostly incremental. - diff --git a/data/lexicon/index.js b/data/lexicon/index.js index 87e9a28f1..499439b8d 100644 --- a/data/lexicon/index.js +++ b/data/lexicon/index.js @@ -60,6 +60,7 @@ import personNoun from './switches/person-noun.js' import personDate from './switches/person-date.js' import personVerb from './switches/person-verb.js' import personPlace from './switches/person-place.js' +import unitNoun from './switches/unit-noun.js' //add-in the generic, flat word-lists const data = [ @@ -123,6 +124,7 @@ const data = [ [personPlace, 'Person|Place'], [personDate, 'Person|Date'], [personVerb, 'Person|Verb'], + [unitNoun, 'Unit|Noun'], ] for (let i = 0; i < data.length; i++) { const list = data[i][0] diff --git a/data/lexicon/misc.js b/data/lexicon/misc.js index 88e01ac47..dd68b8863 100644 --- a/data/lexicon/misc.js +++ b/data/lexicon/misc.js @@ -55,6 +55,7 @@ export default { //misc records: 'Plural', + feet: 'Plural', 'a few': 'Value', 'ones': 'Plural', //those ones diff --git a/data/lexicon/numbers/units.js b/data/lexicon/numbers/units.js index 9b679b462..3dbb77167 100644 --- a/data/lexicon/numbers/units.js +++ b/data/lexicon/numbers/units.js @@ -10,14 +10,8 @@ export default [ 'newton', 'newtons', 'm³', - 'cubic meter', - 'cubic meters', 'dm³', - 'cubic decimeter', - 'cubic decimeters', 'cm³', - 'cubic centimeter', - 'cubic centimeters', 'litre', 'litres', 'liter', @@ -32,14 +26,10 @@ export default [ 'milliliter', 'milliliters', 'in³', - 'cubic inch', - 'cubic inchs', 'ft³', - 'cubic foot', - 'cubic foots', 'yd³', - 'cubic yard', - 'cubic yards', + 'inch', + 'inches', // 'gal', 'gallon', 'gallons', @@ -82,7 +72,6 @@ export default [ // 'ft', //ambiguous // 'yd', 'yard', - 'yards', 'tonne', 'tonnes', // 'kg', @@ -102,69 +91,40 @@ export default [ // 'mg', 'milligram', 'milligrams', - // 'µg', + 'µg', 'microgram', 'micrograms', 'carat', 'carats', - 'grain', - 'grains', // 'oz', 'ounce', 'ounces', // 'lb', - 'pound', //ambig - 'pounds', + // 'pound', //ambig + // 'pounds', 'ton', 'km²', - 'square kilometer', - 'square kilometers', 'm²', - 'square meter', - 'square meters', 'dm²', - 'square decimeter', - 'square decimeters', 'cm²', - 'square centimeter', - 'square centimeters', 'mm²', - 'square millimeter', - 'square millimeters', 'hectare', 'hectares', 'mile²', - 'square mile', - 'square miles', 'in²', - 'square inch', - 'square inchs', 'yd²', - 'square yard', - 'square yards', 'ft²', - 'square foot', - 'square foots', // 'sq ft', - 'square feet', - 'square feets', 'acre', 'acres', // 'hz', 'hertz', 'hertzs', 'km/h', - 'kilometer per hour', - 'kilometers per hour', - // 'kmph', + 'kmph', // 'mps', - 'meter per second', - 'meters per second', 'm/s', // 'mph', - 'mile per hour', - 'miles per hour', - 'miles an hour', 'mi/h', 'knot', 'knots', @@ -193,6 +153,9 @@ export default [ // 'yb', 'yottabyte', 'yottabytes', + 'kbps', + 'bbps', + 'gbps', 'joule', 'joules', // 'pa', diff --git a/data/lexicon/switches/unit-noun.js b/data/lexicon/switches/unit-noun.js new file mode 100644 index 000000000..75b27be25 --- /dev/null +++ b/data/lexicon/switches/unit-noun.js @@ -0,0 +1,34 @@ +export default [ + 'k', + 'm', + 'kb', + 'mb', + 'gb', + 'tb', + 'ml', + 'pt', + 'px', + 'qt', + 'tbl', + 'tbsp', + 'km', + 'cm', + 'mm', + 'mi', + 'miles', + 'ft', + 'feet', + 'foot', + 'yd', + 'kg', + 'hg', + 'mg', + 'oz', + 'lb', + 'mph', + 'pa', + 'yard', + 'yards', + 'pound', + 'pounds', +] \ No newline at end of file diff --git a/scratch.js b/scratch.js index 4741d23cb..f72e3379f 100644 --- a/scratch.js +++ b/scratch.js @@ -3,13 +3,20 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +nlp.verbose('tagger') let txt = '' -txt = '12µs' -let doc = nlp(txt) -doc.debug() -let m = doc.numbers() -m.units().debug() -console.log(m.units().text('root')) -console.log(doc.json()[0].terms) \ No newline at end of file +// let doc = nlp('33gbps').debug() +// doc = nlp('33 gbps').debug() + +// let doc = nlp('50 square feet').debug() +// nlp('team gb').debug() +nlp('3rem').debug() +// let doc = nlp('50 square miles').debug() +// doc.match('#Value #Unit+').debug() +// console.log(doc.has(44000)) +// doc.match(44000).debug() +// let doc = nlp('33%').debug() +// doc.match('33 percent').debug() +// console.log(doc.docs[0]) +// doc.debug() \ No newline at end of file diff --git a/src/1-one/contraction-one/compute/contractions/index.js b/src/1-one/contraction-one/compute/contractions/index.js index 01951cfed..015a25f44 100644 --- a/src/1-one/contraction-one/compute/contractions/index.js +++ b/src/1-one/contraction-one/compute/contractions/index.js @@ -111,7 +111,7 @@ const contractions = (view) => { methods.one.setTag(words, 'NumberRange', world)//add custom tag // is it a time-range, like '5-9pm' if (words[2] && words[2].tags.has('Time')) { - methods.one.setTag([words[0]], 'Time', world) + methods.one.setTag([words[0]], 'Time', world, null, 'time-range') } reTag(document[n], view, i, words.length) } @@ -122,6 +122,7 @@ const contractions = (view) => { if (words) { words = toDocs(words, view) splice(document, [n, i], words) + methods.one.setTag([words[1]], 'Unit', world, null, 'contraction-unit') } } }) diff --git a/src/1-one/contraction-one/compute/contractions/number-unit.js b/src/1-one/contraction-one/compute/contractions/number-unit.js index acd193e81..36f7c4b8a 100644 --- a/src/1-one/contraction-one/compute/contractions/number-unit.js +++ b/src/1-one/contraction-one/compute/contractions/number-unit.js @@ -1,14 +1,26 @@ const numUnit = /^([0-9.,+-]+)([a-z°²³µ/]+)$/i -const numberUnit = function (terms, i, units) { +const notUnit = new Set([ + 'st', + 'nd', + 'rd', + 'th', + 'am', + 'pm', + 'max' +]) + +const numberUnit = function (terms, i) { let term = terms[i] let parts = term.text.match(numUnit) if (parts !== null) { // is it a recognized unit, like 'km'? let unit = parts[2].toLowerCase().trim() - if (units.has(unit)) { - return [parts[1], unit] //split it + // don't split '3rd' + if (notUnit.has(unit)) { + return null } + return [parts[1], unit] //split it } return null } diff --git a/src/1-one/contraction-one/model/index.js b/src/1-one/contraction-one/model/index.js index f3f738f45..df1d13daa 100644 --- a/src/1-one/contraction-one/model/index.js +++ b/src/1-one/contraction-one/model/index.js @@ -1,4 +1,3 @@ import contractions from './contractions.js' -import units from './units.js' -export default { one: { contractions, units } } +export default { one: { contractions } } diff --git a/src/1-one/contraction-one/model/units.js b/src/1-one/contraction-one/model/units.js deleted file mode 100644 index d690c61df..000000000 --- a/src/1-one/contraction-one/model/units.js +++ /dev/null @@ -1,79 +0,0 @@ -// these strings will be split from a number, -// 'km' -> "2km" = [2, 'km'] -// subset of ./data/lexicon/numbers/units.js -export default [ - // length - 'in',//inch - 'ft',//foot - 'yd',//yard - 'mi',//mile - 'km',//kilometer - 'cm',//centimeter - 'mm',//millimeter - - // mass - 'kg',//kilogram - 'kgs', - 'lb',//pounds - 'lbs', - 'oz',//ounce - - // area - 'sqft',//square foot - 'km²', - 'm²', - 'cm²', - 'in²', - 'ft²', - 'yd²', - 'ft³', - 'm³', - 'cm³', - 'in³', - 'yd³', - - // volume - 'gal',//gallon - 'tsp',//teaspoon - - // speed - 'kph', //kilometer per hour - 'km/h', - 'mph',//miles per hour - 'mp/h', - - // temperature - '°', - '°c', - '°f', - - // time - 'µs', - 'sec', - 'secs', - 'min', - 'mins', - 'hr', - 'hrs', - 'yr',//years - 'yrs', - - // software - 'dpi', - 'ppi', - 'px', - 'kb', - 'mb', - 'gb', - - // misc - 'volt', - 'volts', - 'watt', - 'watts', - 'volts', - 'ppm',//parts per million - 'btu', - 'hz',//hertz - 'hp'//horsepower -] \ No newline at end of file diff --git a/src/1-one/match/api/match.js b/src/1-one/match/api/match.js index e84c4dd74..a3582823f 100644 --- a/src/1-one/match/api/match.js +++ b/src/1-one/match/api/match.js @@ -1,5 +1,18 @@ import { fixPointers, isView, isNet } from './_lib.js' +const parseRegs = function (regs, opts, world) { + const one = world.methods.one + if (typeof regs === 'number') { + regs = String(regs) + } + // support param as string + if (typeof regs === 'string') { + regs = one.killUnicode(regs, world) + regs = one.parseMatch(regs, opts, world) + } + return regs +} + const match = function (regs, group, opts) { const one = this.methods.one // support param as view object @@ -10,25 +23,12 @@ const match = function (regs, group, opts) { if (isNet(regs)) { return this.sweep(regs, { tagger: false }).view.settle() } - // support param as string - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world) - regs = one.parseMatch(regs, opts, this.world) - } + regs = parseRegs(regs, opts, this.world) let todo = { regs, group } let res = one.match(this.docs, todo, this._cache) let { ptrs, byGroup } = fixPointers(res, this.fullPointer) let view = this.toView(ptrs) view._groups = byGroup - // try to keep some of the cache - // if (this._cache) { - // view._cache = view.ptrs.map(ptr => { - // if (isFull(ptr, this.document)) { - // return this._cache[ptr[0]] - // } - // return null - // }) - // } return view } @@ -42,10 +42,7 @@ const matchOne = function (regs, group, opts) { if (isNet(regs)) { return this.sweep(regs, { tagger: false, matchOne: true }).view } - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world) - regs = one.parseMatch(regs, opts, this.world) - } + regs = parseRegs(regs, opts, this.world) let todo = { regs, group, justOne: true } let res = one.match(this.docs, todo, this._cache) let { ptrs, byGroup } = fixPointers(res, this.fullPointer) @@ -65,10 +62,7 @@ const has = function (regs, group, opts) { if (isNet(regs)) { return this.sweep(regs, { tagger: false }).view.found } - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world) - regs = one.parseMatch(regs, opts, this.world) - } + regs = parseRegs(regs, opts, this.world) let todo = { regs, group, justOne: true } let ptrs = one.match(this.docs, todo, this._cache).ptrs return ptrs.length > 0 @@ -86,10 +80,7 @@ const ifFn = function (regs, group, opts) { let m = this.sweep(regs, { tagger: false }).view.settle() return this.if(m)//recurse with result } - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world) - regs = one.parseMatch(regs, opts, this.world) - } + regs = parseRegs(regs, opts, this.world) let todo = { regs, group, justOne: true } let ptrs = this.fullPointer let cache = this._cache || [] @@ -119,10 +110,7 @@ const ifNo = function (regs, group, opts) { return this.ifNo(m) } // otherwise parse the match string - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world) - regs = one.parseMatch(regs, opts, this.world) - } + regs = parseRegs(regs, opts, this.world) let cache = this._cache || [] let view = this.filter((m, i) => { let todo = { regs, group, justOne: true } diff --git a/src/1-one/tokenize/model/abbreviations/units.js b/src/1-one/tokenize/model/abbreviations/units.js index 07f7e840d..0a4754b50 100644 --- a/src/1-one/tokenize/model/abbreviations/units.js +++ b/src/1-one/tokenize/model/abbreviations/units.js @@ -3,7 +3,7 @@ export default [ 'dl', 'ml', 'gal', - 'ft', //ambiguous + // 'ft', //ambiguous 'qt', 'pt', 'tbl', @@ -32,12 +32,11 @@ export default [ 'kmph', //kilometers per hour 'kb', //kilobyte 'mb', //megabyte - 'gb', //ambig + // 'gb', //ambig 'tb', //terabyte 'lx', //lux 'lm', //lumen - 'pa', //ambig + // 'pa', //ambig 'fl oz', // - 'yb', ] diff --git a/src/2-two/postTagger/model/numbers/numbers.js b/src/2-two/postTagger/model/numbers/numbers.js index 9ae280848..527f5a6e8 100644 --- a/src/2-two/postTagger/model/numbers/numbers.js +++ b/src/2-two/postTagger/model/numbers/numbers.js @@ -43,9 +43,11 @@ export default [ //quarter million { match: '#Determiner [(half|quarter)] #Ordinal', group: 0, tag: 'Value', reason: 'half-ordinal' }, // thousand and two - { - match: `#Multiple+ and #Value`, - tag: 'Value', - reason: 'magnitude-and-value', - }, + { match: `#Multiple+ and #Value`, tag: 'Value', reason: 'magnitude-and-value' }, + // ambiguous units like 'gb' + // { match: '#Value square? [(kb|mb|gb|tb|ml|pt|qt|tbl|tbsp|km|cm|mm|mi|ft|yd|kg|hg|mg|oz|lb|mph|pa|miles|yard|yards|pound|pounds)]', group: 0, tag: 'Unit', reason: '12-gb' }, + // 5 miles per hour + { match: '#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]', group: 0, tag: 'Unit', reason: '12-miles-per-second' }, + // 5 square miles + { match: '#Value [(square|cubic)] #Unit', group: 0, tag: 'Unit', reason: 'square-miles' }, ] diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/looksPlural.js b/src/2-two/preTagger/compute/tagger/3rd-pass/looksPlural.js index de45b6f8e..329842b90 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/looksPlural.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/looksPlural.js @@ -21,6 +21,9 @@ const isPlural = { ], n: [ 'men', + ], + t: [ + 'feet' ] } // plural words as exceptions to suffix-rules diff --git a/src/2-two/preTagger/model/_expand/index.js b/src/2-two/preTagger/model/_expand/index.js index e7ce6a74c..3652f58f7 100644 --- a/src/2-two/preTagger/model/_expand/index.js +++ b/src/2-two/preTagger/model/_expand/index.js @@ -33,6 +33,8 @@ const switchDefaults = { 'Person|Place': 'Person', // 'boxes' 'Plural|Verb': 'Plural', //(these are already derivative) + // 'miles' + 'Unit|Noun': 'Noun', } const expandLexicon = function (words, model) { diff --git a/src/2-two/preTagger/model/clues/index.js b/src/2-two/preTagger/model/clues/index.js index ecd37e823..6da53ff21 100644 --- a/src/2-two/preTagger/model/clues/index.js +++ b/src/2-two/preTagger/model/clues/index.js @@ -8,6 +8,7 @@ import personDate from './person-date.js' import personNoun from './person-noun.js' import personVerb from './person-verb.js' import personPlace from './person-place.js' +import unitNoun from './unit-noun.js' const clues = { 'Adj|Gerund': adjGerund, @@ -20,6 +21,7 @@ const clues = { 'Person|Date': personDate, 'Person|Verb': personVerb, 'Person|Place': personPlace, + 'Unit|Noun': unitNoun, } const copy = (obj, more) => { diff --git a/src/2-two/preTagger/model/clues/unit-noun.js b/src/2-two/preTagger/model/clues/unit-noun.js new file mode 100644 index 000000000..19d043c39 --- /dev/null +++ b/src/2-two/preTagger/model/clues/unit-noun.js @@ -0,0 +1,9 @@ +// '5 oz' - 'dr oz' +let un = 'Unit' +const clues = { + beforeTags: { Value: un }, + afterTags: {}, + beforeWords: { per: un, every: un, each: un, square: un, cubic: un, sq: un }, + afterWords: { per: un, squared: un, cubed: un }, +} +export default clues \ No newline at end of file diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 7dbad8277..5e287e964 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -11,6 +11,7 @@ export default { "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", "Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", "Plural": "true¦ones,records", + "Unit|Noun": "true¦cm,f7gb,hg,k6lb,m4oz,p2qt,tb1y0;ard2d;!l,sp;a,ound0t,x;!s;!b,g,i0l,m,ph;!les;!b,g,m;eet,oot,t", "Value": "true¦a few", "Imperative": "true¦come here", "PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut", @@ -18,7 +19,7 @@ export default { "Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", "Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba", "Possessive": "true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne", - "Noun|Verb": "true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", + "Noun|Verb": "true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", "Actor": "true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", "Honorific": "true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", @@ -26,9 +27,9 @@ export default { "Preposition": "true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", - "Person|Noun": "true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", + "Person|Noun": "true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloT;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", "Noun|Gerund": "true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng", - "Unit": "true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s", + "Unit": "true¦a0Cb09c02d01ex00fXgUheSinQjoule0GkNlKmEnDoCp9quart0Gt5volts,w4y2ze3°1µ0;g,s;c,f,n;d00ears old,o0;ttW;att0Bb;able2e1on0;!ne09;a0rS;spoN;ascals,e1i0;c02nt05;rcent,tO;hms,uL;anZewtI;/s,e4i0m²,²,³;/h,cro2l0;e0liO;!²;grPsV;gGtN;it1u0;menUx;erTreT;b7elvins,ilo1m0notS;/h,ph,²;byKgrImG;ch0²,³;!es;ct0rtzN;aLogrE;all1b0ig5rD;ps;onJ;a1emtFluid ou0t5;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombDupD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", "Adj|Noun": "true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic", "ProperNoun": "true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi", "Ordinal": "true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th", @@ -59,7 +60,7 @@ export default { "Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", "Adj|Gerund": "true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng", "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", - "Person|Verb": "true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck", + "Person|Verb": "true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck", "Person|Place": "true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria", "Person|Date": "true¦a2j0sep;an0une;!uary;p0ugust,v0;ril" } \ No newline at end of file diff --git a/src/2-two/preTagger/model/models/_data.js b/src/2-two/preTagger/model/models/_data.js index a24221f52..d8b7e3b31 100644 --- a/src/2-two/preTagger/model/models/_data.js +++ b/src/2-two/preTagger/model/models/_data.js @@ -16,9 +16,9 @@ export default { "rev": "uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n" }, "PastTense": { - "rules": "een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s", + "rules": "een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med", "exceptions": "was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5", - "rev": "egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed" + "rev": "egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed" }, "PresentTense": { "rules": "as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|", diff --git a/src/2-two/preTagger/model/regex/regex-numbers.js b/src/2-two/preTagger/model/regex/regex-numbers.js index 64fa2ef08..2c6a0f8ba 100644 --- a/src/2-two/preTagger/model/regex/regex-numbers.js +++ b/src/2-two/preTagger/model/regex/regex-numbers.js @@ -55,6 +55,6 @@ export default [ [/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/, ['Value', 'NumberRange'], '3-4'], //time-range [/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/, ['Time', 'NumberRange'], '3-4pm'], - //with unit + //number with unit [/^[0-9.]+([a-z]{1,4})$/, 'Value', '9km'], ] \ No newline at end of file diff --git a/src/3-three/numbers/numbers/api.js b/src/3-three/numbers/numbers/api.js index a7c196ad8..2107c6fb9 100644 --- a/src/3-three/numbers/numbers/api.js +++ b/src/3-three/numbers/numbers/api.js @@ -28,6 +28,7 @@ const addMethod = function (View) { num: parsed.num, suffix: parsed.suffix, hasComma: parsed.hasComma, + unit: parsed.unit } return json }, []) diff --git a/src/3-three/numbers/numbers/parse/index.js b/src/3-three/numbers/numbers/parse/index.js index 3b36e09e0..db4c9ff69 100644 --- a/src/3-three/numbers/numbers/parse/index.js +++ b/src/3-three/numbers/numbers/parse/index.js @@ -42,6 +42,8 @@ const parseNumber = function (m) { return { num: parseText(m) } } let str = m.text('reduced') + // reach for '12 litres' + let unit = m.growRight('#Unit').match('#Unit$').text('normal') // is it in '3,123' format? let hasComma = /[0-9],[0-9]/.test(m.text('text')) // parse a numeric-number like '$4.00' @@ -49,6 +51,7 @@ const parseNumber = function (m) { let res = parseNumeric(str, m) if (res !== null) { res.hasComma = hasComma + res.unit = unit return res } } @@ -75,15 +78,18 @@ const parseNumber = function (m) { if (fraction && fraction.decimal) { num += fraction.decimal } + + return { - hasComma: hasComma, + hasComma, prefix: '', - num: num, + num, suffix: '', isOrdinal: m.has('#Ordinal'), isText: m.has('#TextValue'), isFraction: m.has('#Fraction'), isMoney: m.has('#Money'), + unit } } export default parseNumber diff --git a/tests/three/numbers/units.test.js b/tests/three/numbers/units.test.js index 665f6a789..46105ee40 100644 --- a/tests/three/numbers/units.test.js +++ b/tests/three/numbers/units.test.js @@ -19,11 +19,26 @@ test('units-parse:', function (t) { ['44 °c', 44, '°c'], ['12µs', 12, 'µs'], ['12km/h', 12, 'km/h'], + // unrecognized units + ['3rem', 3, 'rem'], + ['500ccs', 500, 'ccs'], + ['300max', 300, ''], + ['3rd', 3, ''], + ['500+', 500, ''], + ['500 ccs', 500, ''], ] arr.forEach(a => { - let m = nlp(a[0]).numbers() - t.equal(m.get()[0], a[1], here + ' [num] ' + a[0]) - t.equal(m.units().text('root'), a[2], here + ' [unit] ' + a[0]) + let [str, num, unit] = a + let doc = nlp(str) + let m = doc.numbers() + t.equal(m.get()[0], num, here + ' [num] ' + str) + t.equal(m.units().text('root'), unit, here + ' [unit] ' + str) + // t.equal(doc.has(String(num)), true, here + '[has-num] ' + str) + if (unit) { + t.equal(doc.has(unit), true, here + '[has-unit] ' + str) + } else { + t.equal(doc.has('#Unit'), false, here + '[no-unit] ' + str) + } }) t.end() }) @@ -37,5 +52,24 @@ test('units-convert:', function (t) { doc = nlp('we covered 3km² in total') doc.numbers().toText() t.equal(doc.text(), 'we covered three km² in total', here + 'no space unit') + + + t.equal(nlp('44,000 ft').has(44000), true, here + '44,000 ft') + t.equal(nlp('44,000ft').has('44,000'), true, here + '44,000') + // t.equal(nlp('44,000ft').has(44000), true, here + '44000') t.end() -}) \ No newline at end of file +}) + +// test('implicit units', function (t) { +// let arr = [ +// ['99%', '99%'], +// ['99%', '99 percent'], +// ['99%', '%'], +// ['9ft', 'feet'], +// ] +// arr.forEach(a => { +// let doc = nlp(a[0]) +// t.ok(doc.has(a[1]), here + a[1]) +// }) +// t.end() +// }) diff --git a/tests/two/match.test.js b/tests/two/match.test.js index f4661a853..7c6753612 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -635,6 +635,20 @@ let arr = [ ["taken from us in an instant", 'taken from #Pronoun in an #Noun'], ["the instant he walked", 'the #Noun #Pronoun #PastTense'], + ["5 gb", '#Value #Unit'], + ["5 kb", '#Value #Unit'], + ["5 k", '#Value #Unit'], + ["550 m", '#Value #Unit'], + ["50m", '#Value #Unit'], + ["50 miles", '#Value #Unit'], + ["50 square miles", '#Value #Unit+'], + ["50 miles per hour", '#Value #Unit+'], + ["5gb", '#Value #Unit'], + ["team gb", '#Noun !#Unit'], + ["dr oz", '#Noun !#Unit'], + ["wizard of oz", '#Noun of !#Unit'], + ["downtown pa", '#Noun !#Unit'], + // ["I was an expert", 'i was an #Noun'], // ["definitely worth a rental.", '#Adverb #Verb a #Noun'], // ["keeping the matter a secret", '#Gerund the #Noun a #Noun'], diff --git a/tests/two/number-match.test.js b/tests/two/number-match.test.js index 3fac62d03..fd2c2699b 100644 --- a/tests/two/number-match.test.js +++ b/tests/two/number-match.test.js @@ -10,7 +10,7 @@ let arr = [ ['twenty', '#Value'], ['thousand', '#Value'], ['eighteenth', '#Value'], - ['tbsp', '#Unit'], + ['2tbsp', '#Value #Unit'], ['425-1231', '#PhoneNumber'], ['823-425-1231', '#PhoneNumber'], ['823 425-1231', '#PhoneNumber'], From 28a12e62d005963fda348c568b712455ce0496d6 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Mon, 27 Jun 2022 15:43:04 -0400 Subject: [PATCH 04/27] shy from unit aliases --- scratch.js | 15 +++------------ .../compute/contractions/index.js | 2 +- src/1-one/tokenize/compute/alias.js | 2 +- src/2-two/preTagger/model/clues/unit-noun.js | 17 +++++++++++++++-- tests/three/numbers/units.test.js | 6 +++--- 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/scratch.js b/scratch.js index f72e3379f..61d397ba3 100644 --- a/scratch.js +++ b/scratch.js @@ -3,20 +3,11 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') let txt = '' // let doc = nlp('33gbps').debug() // doc = nlp('33 gbps').debug() -// let doc = nlp('50 square feet').debug() -// nlp('team gb').debug() -nlp('3rem').debug() -// let doc = nlp('50 square miles').debug() -// doc.match('#Value #Unit+').debug() -// console.log(doc.has(44000)) -// doc.match(44000).debug() -// let doc = nlp('33%').debug() -// doc.match('33 percent').debug() -// console.log(doc.docs[0]) -// doc.debug() \ No newline at end of file +let doc = nlp('50ft').debug() +console.log(doc.docs[0]) diff --git a/src/1-one/contraction-one/compute/contractions/index.js b/src/1-one/contraction-one/compute/contractions/index.js index 015a25f44..31f81b68a 100644 --- a/src/1-one/contraction-one/compute/contractions/index.js +++ b/src/1-one/contraction-one/compute/contractions/index.js @@ -66,7 +66,7 @@ const knownOnes = function (list, term, before, after) { const toDocs = function (words, view) { let doc = view.fromText(words.join(' ')) - doc.compute('id') + doc.compute(['id', 'alias']) return doc.docs[0] } diff --git a/src/1-one/tokenize/compute/alias.js b/src/1-one/tokenize/compute/alias.js index ea430383a..ac4c2e598 100644 --- a/src/1-one/tokenize/compute/alias.js +++ b/src/1-one/tokenize/compute/alias.js @@ -5,7 +5,7 @@ const isMath = /[0-9]/ // const hasApostrophe = /['’]s$/ const addAliases = function (term, world) { - let str = term.normal || term.text + let str = term.normal || term.text || term.machine const aliases = world.model.one.aliases // lookup known aliases like '&' if (aliases.hasOwnProperty(str)) { diff --git a/src/2-two/preTagger/model/clues/unit-noun.js b/src/2-two/preTagger/model/clues/unit-noun.js index 19d043c39..e66deb598 100644 --- a/src/2-two/preTagger/model/clues/unit-noun.js +++ b/src/2-two/preTagger/model/clues/unit-noun.js @@ -3,7 +3,20 @@ let un = 'Unit' const clues = { beforeTags: { Value: un }, afterTags: {}, - beforeWords: { per: un, every: un, each: un, square: un, cubic: un, sq: un }, - afterWords: { per: un, squared: un, cubed: un }, + beforeWords: { + per: un, + every: un, + each: un, + square: un, //square km + cubic: un, + sq: un, + metric: un //metric ton + }, + afterWords: { + per: un, + squared: un, + cubed: un, + long: un //foot long + }, } export default clues \ No newline at end of file diff --git a/tests/three/numbers/units.test.js b/tests/three/numbers/units.test.js index 46105ee40..db93db938 100644 --- a/tests/three/numbers/units.test.js +++ b/tests/three/numbers/units.test.js @@ -62,9 +62,9 @@ test('units-convert:', function (t) { // test('implicit units', function (t) { // let arr = [ -// ['99%', '99%'], -// ['99%', '99 percent'], -// ['99%', '%'], +// // ['99%', '99%'], +// // ['99%', '99 percent'], +// // ['99%', '%'], // ['9ft', 'feet'], // ] // arr.forEach(a => { From cd8b9e5ab54e0d2e6ffb5d9c7712235c9f667b7d Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 29 Jun 2022 13:08:08 -0400 Subject: [PATCH 05/27] test for apostrophe in lexicon --- scratch.js | 8 ++++++-- tests/one/lexicon/lexicon.test.js | 13 +++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/scratch.js b/scratch.js index 61d397ba3..9fcfa821a 100644 --- a/scratch.js +++ b/scratch.js @@ -9,5 +9,9 @@ let txt = '' // let doc = nlp('33gbps').debug() // doc = nlp('33 gbps').debug() -let doc = nlp('50ft').debug() -console.log(doc.docs[0]) +let lex = { + 'queen anne\'s lace': 'Flower' +} +let doc = nlp(`Queen Anne's lace`, lex) +doc.match(`#Flower`).debug() +console.log(doc.docs[0]) \ No newline at end of file diff --git a/tests/one/lexicon/lexicon.test.js b/tests/one/lexicon/lexicon.test.js index af02d4784..0f178baa3 100644 --- a/tests/one/lexicon/lexicon.test.js +++ b/tests/one/lexicon/lexicon.test.js @@ -59,4 +59,17 @@ test('tricky lexicon:', function (t) { str = r.match('#Organization+').out('normal') t.equal(str, 'bed bath and beyond', here + 'many-hyphenated-word') t.end() +}) + +test('apostrophe lexicon:', function (t) { + let lex = { + 'queen anne\'s lace': 'Flower', + 'applebee\'s': 'Restaurant' + } + let doc = nlp(`i went to applebee's for dinner`, lex) + t.equal(doc.has(`#Restaurant`), true, here + 'lexicon w/ apostrophe') + + doc = nlp(`Queen Anne's lace`, lex) + t.equal(doc.has(`#Flower`), true, here + 'multi lexicon w/ apostrophe') + t.end() }) \ No newline at end of file From 3898ba49dafbb530ca514ac677acc15e7cb2aa8b Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 30 Jun 2022 09:14:07 -0400 Subject: [PATCH 06/27] units cleanup --- data/lexicon/numbers/units.js | 58 ++------------------- data/lexicon/switches/unit-noun.js | 59 ++++++++++++++-------- plugins/speed/src/plugin.js | 9 ++++ scratch.js | 27 ++++++---- src/2-two/preTagger/model/lexicon/_data.js | 6 +-- src/3-three/numbers/numbers/parse/index.js | 2 +- 6 files changed, 73 insertions(+), 88 deletions(-) diff --git a/data/lexicon/numbers/units.js b/data/lexicon/numbers/units.js index 3dbb77167..e41c55c9c 100644 --- a/data/lexicon/numbers/units.js +++ b/data/lexicon/numbers/units.js @@ -1,14 +1,12 @@ +// ambigous units are in ../switches/unit-noun.js // units that are also abbreviations are in ../abbrev/units.js export default [ '°c', 'celsius', '°f', 'fahrenheit', - // 'kelvin', 'kelvins', '°n', - 'newton', - 'newtons', 'm³', 'dm³', 'cm³', @@ -16,79 +14,50 @@ export default [ 'litres', 'liter', 'liters', - // 'dl', 'deciliter', 'deciliters', - // 'cl', 'centiliter', 'centiliters', - // 'ml', 'milliliter', 'milliliters', 'in³', 'ft³', 'yd³', - 'inch', - 'inches', - // 'gal', 'gallon', 'gallons', 'bbl', - // 'pt', 'pint', 'pints', - // 'qt', 'quart', 'quarts', - // 'tbl', - 'tablespoon', - 'tablespoons', - // 'tsp', - 'teaspoon', - 'teaspoons', - // 'tbsp', - 'cup', //ambig - 'cups', - // 'fl oz', + 'fl oz', 'fluid ounce', 'fluid ounces', - // 'km', 'kilometer', 'kilometers', 'meter', 'meters', - // 'dm', 'decimeter', 'decimeters', - // 'cm', 'centimeter', 'centimeters', - // 'mm', 'millimeter', 'millimeters', - // 'mi', 'mile', - // 'miles', - // 'ft', //ambiguous - // 'yd', - 'yard', 'tonne', 'tonnes', - // 'kg', + 'kilo', + 'kilos', 'kilogram', 'kilograms', - // 'hg', 'hectogram', 'hectograms', 'gram', 'grams', - // 'dg', 'decigram', 'decigrams', - // 'cg', 'centigram', 'centigrams', - // 'mg', 'milligram', 'milligrams', 'µg', @@ -96,12 +65,8 @@ export default [ 'micrograms', 'carat', 'carats', - // 'oz', 'ounce', 'ounces', - // 'lb', - // 'pound', //ambig - // 'pounds', 'ton', 'km²', 'm²', @@ -114,43 +79,33 @@ export default [ 'in²', 'yd²', 'ft²', - // 'sq ft', + 'sq ft', 'acre', 'acres', - // 'hz', 'hertz', 'hertzs', 'km/h', 'kmph', - // 'mps', 'm/s', - // 'mph', 'mi/h', 'knot', 'knots', 'byte', 'bytes', - // 'kb', 'kilobyte', 'kilobytes', - // 'mb', 'megabyte', 'megabytes', - // 'gb',//ambig 'gigabyte', 'gigabytes', - // 'tb', 'terabyte', 'terabytes', 'petabyte', 'petabytes', - // 'eb', 'exabyte', 'exabytes', - // 'zb', 'zettabyte', 'zettabytes', - // 'yb', 'yottabyte', 'yottabytes', 'kbps', @@ -158,7 +113,6 @@ export default [ 'gbps', 'joule', 'joules', - // 'pa', 'pascals', 'watt', 'watts', @@ -169,9 +123,7 @@ export default [ 'farad', 'farads', 'ohms', - // 'lx', 'lux', - // 'lm', 'lumen', 'lumens', 'µs', diff --git a/data/lexicon/switches/unit-noun.js b/data/lexicon/switches/unit-noun.js index 75b27be25..a5e1ac3fd 100644 --- a/data/lexicon/switches/unit-noun.js +++ b/data/lexicon/switches/unit-noun.js @@ -1,34 +1,51 @@ export default [ + 'cm', + 'cup', + 'cups', + 'feet', + 'foot', + 'ft', + 'gal', + 'gb', + 'hg', + 'inch', + 'inches', 'k', - 'm', 'kb', + 'kelvin', + 'kg', + 'kb', + 'km', + 'lb', + 'm', 'mb', - 'gb', - 'tb', + 'mg', + 'mi', + 'hz', + 'mps', + 'mph', + 'miles', 'ml', + 'mm', + 'mph', + 'newton', + 'newtons', + 'oz', + 'pa', + 'pound', + 'pounds', 'pt', 'px', 'qt', + 'tablespoon', + 'tablespoons', + 'tb', 'tbl', 'tbsp', - 'km', - 'cm', - 'mm', - 'mi', - 'miles', - 'ft', - 'feet', - 'foot', - 'yd', - 'kg', - 'hg', - 'mg', - 'oz', - 'lb', - 'mph', - 'pa', + 'teaspoon', + 'teaspoons', + 'tsp', 'yard', 'yards', - 'pound', - 'pounds', + 'yd', ] \ No newline at end of file diff --git a/plugins/speed/src/plugin.js b/plugins/speed/src/plugin.js index 9e21f9c86..8304189e0 100644 --- a/plugins/speed/src/plugin.js +++ b/plugins/speed/src/plugin.js @@ -3,5 +3,14 @@ import keyPress from './keypress/index.js' import workerPool from './workerPool/plugin.js' import lazyParse from './lazyParse/plugin.js' +// combine all the plugins +const plugin = { + api: function (view) { + lazyParse.api(view) + }, + lib: Object.assign({}, streamFile.lib, keyPress.lib, workerPool.lib, lazyParse.lib), +} + export { streamFile, keyPress, workerPool, lazyParse } +export default plugin diff --git a/scratch.js b/scratch.js index 9fcfa821a..54f17dc94 100644 --- a/scratch.js +++ b/scratch.js @@ -1,17 +1,24 @@ /* eslint-disable no-console, no-unused-vars */ import nlp from './src/three.js' -// import plg from './plugins/dates/src/plugin.js' -// nlp.plugin(plg) +import plg from './plugins/speed/src/plugin.js' +nlp.plugin(plg) // nlp.verbose('tagger') let txt = '' -// let doc = nlp('33gbps').debug() -// doc = nlp('33 gbps').debug() +let doc +doc = nlp('33 kilos').debug() +// doc = doc.match('33 km').debug() -let lex = { - 'queen anne\'s lace': 'Flower' -} -let doc = nlp(`Queen Anne's lace`, lex) -doc.match(`#Flower`).debug() -console.log(doc.docs[0]) \ No newline at end of file +console.log(doc.numbers().json()) + + + + +// apostrophe +// let lex = { +// 'queen anne\'s lace': 'Flower' +// } +// let doc = nlp(`Queen Anne's lace`, lex) +// doc.match(`#Flower`).debug() +// console.log(doc.docs[0]) \ No newline at end of file diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 5e287e964..53297b84a 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -11,7 +11,7 @@ export default { "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", "Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", "Plural": "true¦ones,records", - "Unit|Noun": "true¦cm,f7gb,hg,k6lb,m4oz,p2qt,tb1y0;ard2d;!l,sp;a,ound0t,x;!s;!b,g,i0l,m,ph;!les;!b,g,m;eet,oot,t", + "Unit|Noun": "true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s", "Value": "true¦a few", "Imperative": "true¦come here", "PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut", @@ -27,9 +27,9 @@ export default { "Preposition": "true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", - "Person|Noun": "true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloT;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", + "Person|Noun": "true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", "Noun|Gerund": "true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng", - "Unit": "true¦a0Cb09c02d01ex00fXgUheSinQjoule0GkNlKmEnDoCp9quart0Gt5volts,w4y2ze3°1µ0;g,s;c,f,n;d00ears old,o0;ttW;att0Bb;able2e1on0;!ne09;a0rS;spoN;ascals,e1i0;c02nt05;rcent,tO;hms,uL;anZewtI;/s,e4i0m²,²,³;/h,cro2l0;e0liO;!²;grPsV;gGtN;it1u0;menUx;erTreT;b7elvins,ilo1m0notS;/h,ph,²;byKgrImG;ch0²,³;!es;ct0rtzN;aLogrE;all1b0ig5rD;ps;onJ;a1emtFluid ou0t5;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombDupD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", + "Unit": "true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", "Adj|Noun": "true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic", "ProperNoun": "true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi", "Ordinal": "true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th", diff --git a/src/3-three/numbers/numbers/parse/index.js b/src/3-three/numbers/numbers/parse/index.js index db4c9ff69..0def8508d 100644 --- a/src/3-three/numbers/numbers/parse/index.js +++ b/src/3-three/numbers/numbers/parse/index.js @@ -43,7 +43,7 @@ const parseNumber = function (m) { } let str = m.text('reduced') // reach for '12 litres' - let unit = m.growRight('#Unit').match('#Unit$').text('normal') + let unit = m.growRight('#Unit').match('#Unit$').text('machine') // is it in '3,123' format? let hasComma = /[0-9],[0-9]/.test(m.text('text')) // parse a numeric-number like '$4.00' From 0a6130e2825c4e70729693f684cfe0b2ab89b240 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 30 Jun 2022 10:12:45 -0400 Subject: [PATCH 07/27] proof of concept root-match without compute root --- scratch.js | 8 ++- .../match/methods/parseMatch/02-parseToken.js | 18 +++++-- .../match/methods/parseMatch/04-conjugate.js | 51 +++++++++++++++++++ .../{04-postProcess.js => 05-postProcess.js} | 0 src/1-one/match/methods/parseMatch/index.js | 5 +- 5 files changed, 74 insertions(+), 8 deletions(-) create mode 100644 src/1-one/match/methods/parseMatch/04-conjugate.js rename src/1-one/match/methods/parseMatch/{04-postProcess.js => 05-postProcess.js} (100%) diff --git a/scratch.js b/scratch.js index 54f17dc94..9b11305c0 100644 --- a/scratch.js +++ b/scratch.js @@ -7,10 +7,14 @@ nlp.plugin(plg) let txt = '' let doc -doc = nlp('33 kilos').debug() +// doc = nlp('33 kilos').debug() // doc = doc.match('33 km').debug() -console.log(doc.numbers().json()) +doc = nlp('walking') +doc.match('{walk}').debug() +console.log(nlp.parseMatch('{live/verb}')) + +// console.log(doc.numbers().json()) diff --git a/src/1-one/match/methods/parseMatch/02-parseToken.js b/src/1-one/match/methods/parseMatch/02-parseToken.js index 269078e01..9f39c7a52 100644 --- a/src/1-one/match/methods/parseMatch/02-parseToken.js +++ b/src/1-one/match/methods/parseMatch/02-parseToken.js @@ -127,14 +127,22 @@ const parseToken = function (w, opts) { return obj } - //machine/sense overloaded + //root/sense overloaded if (start(w) === '{' && end(w) === '}') { w = stripBoth(w) + obj.id = w + obj.root = w if (/\//.test(w)) { - obj.sense = w - obj.greedy = true - } else { - obj.machine = w + let split = obj.root.split(/\//) + obj.root = split[0] + obj.pos = split[1] + if (obj.pos === 'adj') { + obj.pos = 'adjective' + } + // add sense-number too + if (split[2] !== undefined) { + obj.num = split[2] + } } return obj } diff --git a/src/1-one/match/methods/parseMatch/04-conjugate.js b/src/1-one/match/methods/parseMatch/04-conjugate.js new file mode 100644 index 000000000..d4862eee2 --- /dev/null +++ b/src/1-one/match/methods/parseMatch/04-conjugate.js @@ -0,0 +1,51 @@ +const addVerbs = function (token, world) { + let { verbConjugate } = world.methods.two.transform + let res = verbConjugate(token.root, world.model) + delete res.FutureTense + return Object.values(res).filter(str => str) +} + +const addNoun = function (token, world) { + let { nounToPlural } = world.methods.two.transform + let res = [token.root] + res.push(nounToPlural(token.root, world.model)) + return res +} + +const addAdjective = function (token, world) { + let { adjToSuperlative, adjToComparative } = world.methods.two.transform + let res = [token.root] + res.push(adjToSuperlative(token.root, world.model)) + res.push(adjToComparative(token.root, world.model)) + return res +} + +// turn '{walk}' into 'walking', 'walked', etc +const conjugateRoot = function (regs, world) { + // do we have compromise/two? + if (world.methods.two && world.methods.two.transform) { + regs = regs.map(token => { + // a reg to convert '{foo}' + if (token.root) { + let choices = [] + if (!token.pos || token.pos === 'verb') { + choices = choices.concat(addVerbs(token, world)) + } + if (!token.pos || token.pos === 'noun') { + choices = choices.concat(addNoun(token, world)) + } + if (!token.pos || token.pos === 'adjective') { + choices = choices.concat(addAdjective(token, world)) + } + choices = choices.filter(str => str) + if (choices.length > 0) { + token.operator = 'or' + token.fastOr = new Set(choices) + } + } + return token + }) + } + return regs +} +export default conjugateRoot \ No newline at end of file diff --git a/src/1-one/match/methods/parseMatch/04-postProcess.js b/src/1-one/match/methods/parseMatch/05-postProcess.js similarity index 100% rename from src/1-one/match/methods/parseMatch/04-postProcess.js rename to src/1-one/match/methods/parseMatch/05-postProcess.js diff --git a/src/1-one/match/methods/parseMatch/index.js b/src/1-one/match/methods/parseMatch/index.js index 8fe71568b..da8ecfaa9 100644 --- a/src/1-one/match/methods/parseMatch/index.js +++ b/src/1-one/match/methods/parseMatch/index.js @@ -1,7 +1,8 @@ import parseBlocks from './01-parseBlocks.js' import parseToken from './02-parseToken.js' import splitHyphens from './03-splitHyphens.js' -import postProcess from './04-postProcess.js' +import conjugateRoot from './04-conjugate.js' +import postProcess from './05-postProcess.js' /** parse a match-syntax string into json */ const syntax = function (input, opts, world) { @@ -18,6 +19,8 @@ const syntax = function (input, opts, world) { tokens = tokens.map(str => parseToken(str, opts)) // '~re-do~' tokens = splitHyphens(tokens, world) + // '{walk}' + tokens = conjugateRoot(tokens, world) //clean up anything weird tokens = postProcess(tokens, opts) // console.log(tokens) From 5d49dffc4a05e43149433e219beb720ba51e8708 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 30 Jun 2022 11:25:28 -0400 Subject: [PATCH 08/27] make root-match pretty sloppy by default --- changelog.md | 7 ++- scratch.js | 6 +-- .../match/methods/match/term/doesMatch.js | 4 ++ .../match/methods/parseMatch/02-parseToken.js | 4 +- .../{04-conjugate.js => 04-inflect-root.js} | 14 +++--- src/1-one/match/methods/parseMatch/index.js | 4 +- tests/two/misc/root.test.js | 43 +++++++++++++++++++ 7 files changed, 69 insertions(+), 13 deletions(-) rename src/1-one/match/methods/parseMatch/{04-conjugate.js => 04-inflect-root.js} (76%) diff --git a/changelog.md b/changelog.md index f15676220..932072808 100644 --- a/changelog.md +++ b/changelog.md @@ -7,9 +7,14 @@ compromise uses semver, and pushes to npm and github frequently While all _Major_ releases should be reviewed, our only _large_ releases are **v6** in 2016 **v12** in 2019 and **v14** in 2022. Others have been mostly incremental. + +#### 14.4.0 [June 2021] +- **[change]** - root matches like '{walk}' work without doing .compute('root') - **[change]** - split numbers+units '12km' as contraction - #919 +- **[fix]** - support apostrophes in lexicon #932 - **[fix]** - support unTag property in sweep ---> #### 14.3.1 [June 2021] - **[fix]** - missed caches in .sweep() diff --git a/scratch.js b/scratch.js index 9b11305c0..a23cf6db6 100644 --- a/scratch.js +++ b/scratch.js @@ -10,9 +10,9 @@ let doc // doc = nlp('33 kilos').debug() // doc = doc.match('33 km').debug() -doc = nlp('walking') -doc.match('{walk}').debug() -console.log(nlp.parseMatch('{live/verb}')) +doc = nlp('he sweetly sang').debug() +doc.match('{sweet}').debug() +console.log(nlp.parseMatch('{sweet/adj}')) // console.log(doc.numbers().json()) diff --git a/src/1-one/match/methods/match/term/doesMatch.js b/src/1-one/match/methods/match/term/doesMatch.js index a86d42723..e66a08ab6 100644 --- a/src/1-one/match/methods/match/term/doesMatch.js +++ b/src/1-one/match/methods/match/term/doesMatch.js @@ -92,6 +92,10 @@ const doesMatch = function (term, reg, index, length) { } // support optimized (one|two) if (reg.fastOr !== undefined) { + // {work/verb} must be a verb + if (reg.pos && !term.tags.has(reg.pos)) { + return null + } return reg.fastOr.has(term.implicit) || reg.fastOr.has(term.normal) || reg.fastOr.has(term.text) || reg.fastOr.has(term.machine) } //support slower (one|two) diff --git a/src/1-one/match/methods/parseMatch/02-parseToken.js b/src/1-one/match/methods/parseMatch/02-parseToken.js index 9f39c7a52..ca5449c62 100644 --- a/src/1-one/match/methods/parseMatch/02-parseToken.js +++ b/src/1-one/match/methods/parseMatch/02-parseToken.js @@ -137,8 +137,10 @@ const parseToken = function (w, opts) { obj.root = split[0] obj.pos = split[1] if (obj.pos === 'adj') { - obj.pos = 'adjective' + obj.pos = 'Adjective' } + // titlecase + obj.pos = obj.pos.charAt(0).toUpperCase() + obj.pos.substr(1).toLowerCase() // add sense-number too if (split[2] !== undefined) { obj.num = split[2] diff --git a/src/1-one/match/methods/parseMatch/04-conjugate.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js similarity index 76% rename from src/1-one/match/methods/parseMatch/04-conjugate.js rename to src/1-one/match/methods/parseMatch/04-inflect-root.js index d4862eee2..5414d46fd 100644 --- a/src/1-one/match/methods/parseMatch/04-conjugate.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -13,28 +13,30 @@ const addNoun = function (token, world) { } const addAdjective = function (token, world) { - let { adjToSuperlative, adjToComparative } = world.methods.two.transform + let { adjToSuperlative, adjToComparative, adjToAdverb } = world.methods.two.transform let res = [token.root] res.push(adjToSuperlative(token.root, world.model)) res.push(adjToComparative(token.root, world.model)) + res.push(adjToAdverb(token.root, world.model)) return res } // turn '{walk}' into 'walking', 'walked', etc -const conjugateRoot = function (regs, world) { +const inflectRoot = function (regs, world) { // do we have compromise/two? if (world.methods.two && world.methods.two.transform) { regs = regs.map(token => { // a reg to convert '{foo}' if (token.root) { let choices = [] - if (!token.pos || token.pos === 'verb') { + if (!token.pos || token.pos === 'Verb') { choices = choices.concat(addVerbs(token, world)) } - if (!token.pos || token.pos === 'noun') { + if (!token.pos || token.pos === 'Noun') { choices = choices.concat(addNoun(token, world)) } - if (!token.pos || token.pos === 'adjective') { + // don't run these by default + if (!token.pos || token.pos === 'Adjective') { choices = choices.concat(addAdjective(token, world)) } choices = choices.filter(str => str) @@ -48,4 +50,4 @@ const conjugateRoot = function (regs, world) { } return regs } -export default conjugateRoot \ No newline at end of file +export default inflectRoot \ No newline at end of file diff --git a/src/1-one/match/methods/parseMatch/index.js b/src/1-one/match/methods/parseMatch/index.js index da8ecfaa9..22d6bf45f 100644 --- a/src/1-one/match/methods/parseMatch/index.js +++ b/src/1-one/match/methods/parseMatch/index.js @@ -1,7 +1,7 @@ import parseBlocks from './01-parseBlocks.js' import parseToken from './02-parseToken.js' import splitHyphens from './03-splitHyphens.js' -import conjugateRoot from './04-conjugate.js' +import inflectRoot from './04-inflect-root.js' import postProcess from './05-postProcess.js' /** parse a match-syntax string into json */ @@ -20,7 +20,7 @@ const syntax = function (input, opts, world) { // '~re-do~' tokens = splitHyphens(tokens, world) // '{walk}' - tokens = conjugateRoot(tokens, world) + tokens = inflectRoot(tokens, world) //clean up anything weird tokens = postProcess(tokens, opts) // console.log(tokens) diff --git a/tests/two/misc/root.test.js b/tests/two/misc/root.test.js index dffe53684..7563ee7cf 100644 --- a/tests/two/misc/root.test.js +++ b/tests/two/misc/root.test.js @@ -62,5 +62,48 @@ test('lookup root', function (t) { let doc = nlp(txt).compute('root') let res = doc.lookup(['john lennon', 'exercise', 'four to five'], { form: 'root' }) t.deepEqual(res.out('array'), ['exercised', 'four to five'], here + 'found root form') + t.end() +}) + + +test('root match', function (t) { + let doc = nlp('five works of art') + t.equal(doc.has('{work}'), true, here + '{work}') + t.equal(doc.has('{work/noun}'), true, here + '{work/noun}') + t.equal(doc.has('{work/verb}'), false, here + '{work/verb}') + t.equal(doc.has('{work/adjective}'), false, here + '{work/adjective}') + + doc = nlp('i work at 8') + t.equal(doc.has('{work}'), true, here + '{work} vb') + t.equal(doc.has('{work/noun}'), false, here + '{work/noun} vb') + t.equal(doc.has('{work/verb}'), true, here + '{work/verb} vb') + t.equal(doc.has('{work/adjective}'), false, here + '{work/adjective} vb') + doc = nlp('i worked at 8') + t.equal(doc.has('{work}'), true, here + '{work} vbd') + t.equal(doc.has('{work/noun}'), false, here + '{work/noun} vbd') + t.equal(doc.has('{work/verb}'), true, here + '{work/verb} vbd') + t.equal(doc.has('{work/adjective}'), false, here + '{work/adjective} vbd') + doc = nlp('i am working at 8') + t.equal(doc.has('{work}'), true, here + '{work} vbg') + t.equal(doc.has('{work/noun}'), false, here + '{work/noun} vbg') + t.equal(doc.has('{work/verb}'), true, here + '{work/verb} vbg') + t.equal(doc.has('{work/adjective}'), false, here + '{work/adjective} vbg') + + doc = nlp('he was sweet') + t.equal(doc.has('{sweet}'), true, here + '{sweet} jj') + t.equal(doc.has('{sweet/noun}'), false, here + '{sweet/noun} jj') + t.equal(doc.has('{sweet/verb}'), false, here + '{sweet/verb} jj') + t.equal(doc.has('{sweet/adjective}'), true, here + '{sweet/adjective} jj') + doc = nlp('he was sweeter') + t.equal(doc.has('{sweet}'), true, here + '{sweet} jjr') + t.equal(doc.has('{sweet/noun}'), false, here + '{sweet/noun} jjr') + t.equal(doc.has('{sweet/verb}'), false, here + '{sweet/verb} jjr') + t.equal(doc.has('{sweet/adjective}'), true, here + '{sweet/adjective} jjr') + doc = nlp('he sweetly sang') + t.equal(doc.has('{sweet}'), true, here + '{sweet} rb') + t.equal(doc.has('{sweet/noun}'), false, here + '{sweet/noun} rb') + t.equal(doc.has('{sweet/verb}'), false, here + '{sweet/verb} rb') + t.equal(doc.has('{sweet/adjective}'), false, here + '{sweet/adjective} rb') + t.end() }) \ No newline at end of file From 3fe41c0695bb047f2727deb832a3910a38bca8fb Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 30 Jun 2022 12:08:08 -0400 Subject: [PATCH 09/27] keep caches on update, when possible --- plugins/speed/package-lock.json | 34 +++++++++---------- plugins/speed/package.json | 4 +-- plugins/speed/src/lazyParse/maybeMatch.js | 3 +- plugins/speed/src/lazyParse/plugin.js | 4 +-- scratch.js | 13 +++++-- src/1-one/change/api/remove.js | 2 +- src/API/View.js | 27 +++++++-------- ...eep-cache.ignore.js => keep-cache.test.js} | 0 8 files changed, 45 insertions(+), 42 deletions(-) rename tests/one/cache/{keep-cache.ignore.js => keep-cache.test.js} (100%) diff --git a/plugins/speed/package-lock.json b/plugins/speed/package-lock.json index e83f43a08..1e1dcbf3c 100644 --- a/plugins/speed/package-lock.json +++ b/plugins/speed/package-lock.json @@ -1,28 +1,28 @@ { "name": "compromise-speed", - "version": "0.0.3", + "version": "0.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "compromise-speed", - "version": "0.0.3", + "version": "0.1.0", "license": "MIT", "devDependencies": { - "compromise": "^14.1.2" + "compromise": "14.3.1" }, "peerDependencies": { "compromise": ">=14.0.0" } }, "node_modules/compromise": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.1.2.tgz", - "integrity": "sha512-GGoe+dUqnTfVvvY+UMI6cfdT/kAbX+HNcJlNYSY5tO/dxVUlJFdWYTiIDbxVu5AFOdP6NhQ1xo21xubgwllo4g==", + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.3.1.tgz", + "integrity": "sha512-IZ0ipZrKsvCaRou1ngnQF+h1hTrA34dKHZKlIpShOuH6xNZ6WPHDmGNGgjTUkS/kg/qTxMhua3g/eNsV7I7DdQ==", "dev": true, "dependencies": { "efrt": "2.6.0", - "grad-school": "0.0.4", + "grad-school": "0.0.5", "suffix-thumb": "4.0.2" }, "engines": { @@ -39,9 +39,9 @@ } }, "node_modules/grad-school": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.4.tgz", - "integrity": "sha512-wIaLSmqqMNiNJGMUq45jokvb+pTW0xe52k1+iY5aQgGNVM9xf1OpWuIDqHxxSqlRf/nqt0D/NIpj61+2z87q+g==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz", + "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", "dev": true, "engines": { "node": ">=8.0.0" @@ -56,13 +56,13 @@ }, "dependencies": { "compromise": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.1.2.tgz", - "integrity": "sha512-GGoe+dUqnTfVvvY+UMI6cfdT/kAbX+HNcJlNYSY5tO/dxVUlJFdWYTiIDbxVu5AFOdP6NhQ1xo21xubgwllo4g==", + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.3.1.tgz", + "integrity": "sha512-IZ0ipZrKsvCaRou1ngnQF+h1hTrA34dKHZKlIpShOuH6xNZ6WPHDmGNGgjTUkS/kg/qTxMhua3g/eNsV7I7DdQ==", "dev": true, "requires": { "efrt": "2.6.0", - "grad-school": "0.0.4", + "grad-school": "0.0.5", "suffix-thumb": "4.0.2" } }, @@ -73,9 +73,9 @@ "dev": true }, "grad-school": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.4.tgz", - "integrity": "sha512-wIaLSmqqMNiNJGMUq45jokvb+pTW0xe52k1+iY5aQgGNVM9xf1OpWuIDqHxxSqlRf/nqt0D/NIpj61+2z87q+g==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz", + "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", "dev": true }, "suffix-thumb": { diff --git a/plugins/speed/package.json b/plugins/speed/package.json index 645f899b2..741bafd23 100644 --- a/plugins/speed/package.json +++ b/plugins/speed/package.json @@ -35,7 +35,7 @@ "compromise": ">=14.0.0" }, "devDependencies": { - "compromise": "^14.1.2" + "compromise": "14.3.1" }, "license": "MIT" -} \ No newline at end of file +} diff --git a/plugins/speed/src/lazyParse/maybeMatch.js b/plugins/speed/src/lazyParse/maybeMatch.js index b05fb017f..a316790f3 100644 --- a/plugins/speed/src/lazyParse/maybeMatch.js +++ b/plugins/speed/src/lazyParse/maybeMatch.js @@ -1,9 +1,8 @@ const getWords = function (net) { - return Object.keys(net.index).filter(w => !w.startsWith('#') && !w.startsWith('%')) + return Object.keys(net.hooks).filter(w => !w.startsWith('#') && !w.startsWith('%')) } const maybeMatch = function (net) { - // must have *atleast* one of these words let words = getWords(net) if (words.length === 0) { diff --git a/plugins/speed/src/lazyParse/plugin.js b/plugins/speed/src/lazyParse/plugin.js index 59b590d04..c5b32230f 100644 --- a/plugins/speed/src/lazyParse/plugin.js +++ b/plugins/speed/src/lazyParse/plugin.js @@ -1,11 +1,11 @@ import maybeMatch from './maybeMatch.js' -import lazyParse from './lazyParse.js' +import lazy from './lazyParse.js' export default { api: function (View) { View.prototype.maybeMatch = maybeMatch }, lib: { - lazyParse + lazy } } \ No newline at end of file diff --git a/scratch.js b/scratch.js index a23cf6db6..842acaced 100644 --- a/scratch.js +++ b/scratch.js @@ -10,10 +10,17 @@ let doc // doc = nlp('33 kilos').debug() // doc = doc.match('33 km').debug() -doc = nlp('he sweetly sang').debug() -doc.match('{sweet}').debug() -console.log(nlp.parseMatch('{sweet/adj}')) +// doc = nlp('he sweetly sang').debug() +// doc.match('{sweet}').debug() +// console.log(nlp.parseMatch('{sweet/adj}')) +doc = nlp('one two three. four five') +doc.cache() + +doc.filter(m => { + console.log(' inside', m._cache) +}) +// nlp.lazy('the sweeter the sugar', '{sweet}').debug() // console.log(doc.numbers().json()) diff --git a/src/1-one/change/api/remove.js b/src/1-one/change/api/remove.js index c067706db..8fdbb6aef 100644 --- a/src/1-one/change/api/remove.js +++ b/src/1-one/change/api/remove.js @@ -77,7 +77,7 @@ const methods = { return self.none() } // self._cache = null - let res = self.toView(ptrs) //return new document + let res = self.update(ptrs) //return new document return res }, } diff --git a/src/API/View.js b/src/API/View.js index 009dcb7da..ad2861af7 100644 --- a/src/API/View.js +++ b/src/API/View.js @@ -73,31 +73,28 @@ class View { update(pointer) { let m = new View(this.document, pointer) // send the cache down, too? - if (m._cache && pointer && pointer.length > 1) { - // only if it's full + if (this._cache && pointer && pointer.length > 0) { let cache = [] - pointer.forEach(ptr => { + // only keep cache if it's a full-sentence + pointer.forEach((ptr, i) => { if (ptr.length === 1) { - cache.push(m._cache[ptr[0]]) + cache[i] = this._cache[i] + } + let [n, start, end] = ptr + if (start === 0 && this.document[n].length === end) { + cache[i] = this._cache[i] } - // let [n, start, end] = ptr - // if (start === 0 && this.document[n][end - 1] && !this.document[n][end]) { - // console.log('=-=-=-= here -=-=-=-') - // } }) - m._cache = cache + if (cache.length > 0) { + m._cache = cache + } } m.world = this.world return m } // create a new View, from this one toView(pointer) { - if (pointer === undefined) { - pointer = this.pointer - } - let m = new View(this.document, pointer) - // m._cache = this._cache // share this full thing - return m + return new View(this.document, pointer || this.pointer) } fromText(input) { const { methods } = this diff --git a/tests/one/cache/keep-cache.ignore.js b/tests/one/cache/keep-cache.test.js similarity index 100% rename from tests/one/cache/keep-cache.ignore.js rename to tests/one/cache/keep-cache.test.js From ac622b45b34db6c0826c6d07579b83f50f08a7f1 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 30 Jun 2022 13:52:23 -0400 Subject: [PATCH 10/27] keep-cache edge-cases --- changelog.md | 1 + scratch.js | 20 +++--- src/1-one/change/api/insert.js | 1 + src/1-one/change/api/remove.js | 4 +- src/1-one/change/api/replace.js | 1 + src/1-one/change/api/sort.js | 4 ++ src/2-two/postTagger/api.js | 2 +- src/2-two/postTagger/compute/index.js | 5 +- src/2-two/preTagger/compute/tagger/index.js | 2 - src/3-three/verbs/api/conjugate/toFuture.js | 2 +- src/3-three/verbs/api/conjugate/toGerund.js | 2 +- src/3-three/verbs/api/conjugate/toPast.js | 2 +- src/3-three/verbs/api/conjugate/toPresent.js | 2 +- src/API/View.js | 11 ++- src/API/methods/loops.js | 20 +++--- src/API/methods/utils.js | 5 +- tests/one/cache/keep-cache.test.js | 73 +++++++++++--------- tests/three/misc.test.js | 2 +- 18 files changed, 88 insertions(+), 71 deletions(-) diff --git a/changelog.md b/changelog.md index 932072808..6a5b68c30 100644 --- a/changelog.md +++ b/changelog.md @@ -15,6 +15,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[change]** - split numbers+units '12km' as contraction - #919 - **[fix]** - support apostrophes in lexicon #932 - **[fix]** - support unTag property in sweep +- **[change]** - keep sentence caches, when still valid #### 14.3.1 [June 2021] - **[fix]** - missed caches in .sweep() diff --git a/scratch.js b/scratch.js index 842acaced..9bb49183e 100644 --- a/scratch.js +++ b/scratch.js @@ -1,7 +1,7 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/three.js' -import plg from './plugins/speed/src/plugin.js' -nlp.plugin(plg) +import nlp from './src/two.js' +// import plg from './plugins/speed/src/plugin.js' +// nlp.plugin(plg) // nlp.verbose('tagger') @@ -14,12 +14,16 @@ let doc // doc.match('{sweet}').debug() // console.log(nlp.parseMatch('{sweet/adj}')) -doc = nlp('one two three. four five') -doc.cache() -doc.filter(m => { - console.log(' inside', m._cache) -}) +doc = nlp.tokenize('one two three. four five six. seven eight nine.') +doc.compute('tagger') +doc.debug() + + +// doc = nlp('one two three. four five').cache() +// let m = doc.remove('four') +// console.log(m._cache) + // nlp.lazy('the sweeter the sugar', '{sweet}').debug() // console.log(doc.numbers().json()) diff --git a/src/1-one/change/api/insert.js b/src/1-one/change/api/insert.js index 8a230d056..fdb89a8d0 100644 --- a/src/1-one/change/api/insert.js +++ b/src/1-one/change/api/insert.js @@ -39,6 +39,7 @@ const getTerms = function (input, world) { const insert = function (input, view, prepend) { const { document, world } = view + view.uncache() // insert words at end of each doc let ptrs = view.fullPointer let selfPtrs = view.fullPointer diff --git a/src/1-one/change/api/remove.js b/src/1-one/change/api/remove.js index 8fdbb6aef..2928c6996 100644 --- a/src/1-one/change/api/remove.js +++ b/src/1-one/change/api/remove.js @@ -45,6 +45,7 @@ const methods = { /** */ remove: function (reg) { const { indexN } = this.methods.one.pointer + this.uncache() // two modes: // - a. remove self, from full parent let self = this.all() @@ -76,8 +77,7 @@ const methods = { this.ptrs = [] return self.none() } - // self._cache = null - let res = self.update(ptrs) //return new document + let res = self.toView(ptrs) //return new document return res }, } diff --git a/src/1-one/change/api/replace.js b/src/1-one/change/api/replace.js index ac2271d34..ccd6932ef 100644 --- a/src/1-one/change/api/replace.js +++ b/src/1-one/change/api/replace.js @@ -33,6 +33,7 @@ const subDollarSign = function (input, main) { fns.replaceWith = function (input, keep = {}) { let ptrs = this.fullPointer let main = this + this.uncache() if (typeof input === 'function') { return replaceByFn(main, input) } diff --git a/src/1-one/change/api/sort.js b/src/1-one/change/api/sort.js index 15fd67897..6b1822df1 100644 --- a/src/1-one/change/api/sort.js +++ b/src/1-one/change/api/sort.js @@ -19,6 +19,7 @@ const customSort = function (view, fn) { /** re-arrange the order of the matches (in place) */ const sort = function (input) { let { docs, pointer } = this + this.uncache() if (typeof input === 'function') { return customSort(this, input) } @@ -58,6 +59,9 @@ const reverse = function () { let ptrs = this.pointer || this.docs.map((_d, n) => [n]) ptrs = [].concat(ptrs) ptrs = ptrs.reverse() + if (this._cache) { + this._cache = this._cache.reverse() + } return this.update(ptrs) } diff --git a/src/2-two/postTagger/api.js b/src/2-two/postTagger/api.js index 2482de357..fa99999f8 100644 --- a/src/2-two/postTagger/api.js +++ b/src/2-two/postTagger/api.js @@ -19,6 +19,6 @@ export default function (View) { // (re-) run the POS-tagger View.prototype.tagger = function () { - return this.compute(['preTagger', 'contractionTwo', 'postTagger']) + return this.compute(['tagger']) } } \ No newline at end of file diff --git a/src/2-two/postTagger/compute/index.js b/src/2-two/postTagger/compute/index.js index 613d12567..b9d4295db 100644 --- a/src/2-two/postTagger/compute/index.js +++ b/src/2-two/postTagger/compute/index.js @@ -19,4 +19,7 @@ const postTagger = function (view) { return view } -export default { postTagger } +// helper function for compute('tagger') +const tagger = (view) => view.compute(['lexicon', 'preTagger', 'postTagger']) + +export default { postTagger, tagger } diff --git a/src/2-two/preTagger/compute/tagger/index.js b/src/2-two/preTagger/compute/tagger/index.js index 5c6331f82..2661c8385 100644 --- a/src/2-two/preTagger/compute/tagger/index.js +++ b/src/2-two/preTagger/compute/tagger/index.js @@ -87,8 +87,6 @@ const preTagger = function (view) { // guess by the neighbours thirdPass(terms, model, world) } - // leave a nice cache for the next people - view.compute('cache') return document } diff --git a/src/3-three/verbs/api/conjugate/toFuture.js b/src/3-three/verbs/api/conjugate/toFuture.js index b7230eb5f..ee464e57d 100644 --- a/src/3-three/verbs/api/conjugate/toFuture.js +++ b/src/3-three/verbs/api/conjugate/toFuture.js @@ -142,7 +142,7 @@ const toFuture = function (vb, parsed, form) { } if (forms.hasOwnProperty(form)) { vb = forms[form](vb, parsed) - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']) + vb.fullSentence().compute(['tagger', 'chunks']) return vb } return vb diff --git a/src/3-three/verbs/api/conjugate/toGerund.js b/src/3-three/verbs/api/conjugate/toGerund.js index a222083d5..782cec453 100644 --- a/src/3-three/verbs/api/conjugate/toGerund.js +++ b/src/3-three/verbs/api/conjugate/toGerund.js @@ -28,7 +28,7 @@ const toGerund = function (vb, parsed) { } vb.replace('not is', 'is not') vb.replace('not are', 'are not') - vb.fullSentence().compute(['preTagger', 'postTagger', 'chunks']) + vb.fullSentence().compute(['tagger', 'chunks']) return vb } export default toGerund diff --git a/src/3-three/verbs/api/conjugate/toPast.js b/src/3-three/verbs/api/conjugate/toPast.js index c1943de39..d69cb9604 100644 --- a/src/3-three/verbs/api/conjugate/toPast.js +++ b/src/3-three/verbs/api/conjugate/toPast.js @@ -199,7 +199,7 @@ const toPast = function (vb, parsed, form) { // console.log(form) if (forms.hasOwnProperty(form)) { vb = forms[form](vb, parsed) - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']) + vb.fullSentence().compute(['tagger', 'chunks']) return vb } // do nothing i guess? diff --git a/src/3-three/verbs/api/conjugate/toPresent.js b/src/3-three/verbs/api/conjugate/toPresent.js index b610fdfa4..b44d5259a 100644 --- a/src/3-three/verbs/api/conjugate/toPresent.js +++ b/src/3-three/verbs/api/conjugate/toPresent.js @@ -224,7 +224,7 @@ const toPresent = function (vb, parsed, form) { // console.log(form) if (forms.hasOwnProperty(form)) { vb = forms[form](vb, parsed) - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']) + vb.fullSentence().compute(['tagger', 'chunks']) return vb } return vb diff --git a/src/API/View.js b/src/API/View.js index ad2861af7..ef95dbb9d 100644 --- a/src/API/View.js +++ b/src/API/View.js @@ -74,15 +74,14 @@ class View { let m = new View(this.document, pointer) // send the cache down, too? if (this._cache && pointer && pointer.length > 0) { - let cache = [] // only keep cache if it's a full-sentence + let cache = [] pointer.forEach((ptr, i) => { - if (ptr.length === 1) { - cache[i] = this._cache[i] - } let [n, start, end] = ptr - if (start === 0 && this.document[n].length === end) { - cache[i] = this._cache[i] + if (ptr.length === 1) { + cache[i] = this._cache[n] + } else if (start === 0 && this.document[n].length === end) { + cache[i] = this._cache[n] } }) if (cache.length > 0) { diff --git a/src/API/methods/loops.js b/src/API/methods/loops.js index e88583c5b..bfa4b6f0c 100644 --- a/src/API/methods/loops.js +++ b/src/API/methods/loops.js @@ -1,3 +1,5 @@ +// wrappers for loops in javascript arrays + const forEach = function (cb) { let ptrs = this.fullPointer ptrs.forEach((ptr, i) => { @@ -9,11 +11,14 @@ const forEach = function (cb) { const map = function (cb, empty) { let ptrs = this.fullPointer - // let cache = this._cache || [] let res = ptrs.map((ptr, i) => { let view = this.update([ptr]) - // view._cache = cache[i] - return cb(view, i) + let out = cb(view, i) + // if we returned nothing, return a view + if (out === undefined) { + return this.none() + } + return out }) if (res.length === 0) { return empty || this.update([]) @@ -40,23 +45,18 @@ const map = function (cb, empty) { const filter = function (cb) { let ptrs = this.fullPointer - // let cache = this._cache || [] ptrs = ptrs.filter((ptr, i) => { let view = this.update([ptr]) - // view._cache = cache[i] return cb(view, i) }) - let res = this.update(ptrs) //TODO: keep caches automatically - // res._cache = ptrs.map(ptr => cache[ptr[0]]) + let res = this.update(ptrs) return res } const find = function (cb) { let ptrs = this.fullPointer - // let cache = this._cache || [] let found = ptrs.find((ptr, i) => { let view = this.update([ptr]) - // view._cache = cache[i] return cb(view, i) }) return this.update([found]) @@ -64,10 +64,8 @@ const find = function (cb) { const some = function (cb) { let ptrs = this.fullPointer - // let cache = this._cache || [] return ptrs.some((ptr, i) => { let view = this.update([ptr]) - // view._cache = cache[i] return cb(view, i) }) } diff --git a/src/API/methods/utils.js b/src/API/methods/utils.js index a9a10ba03..5b14379d0 100644 --- a/src/API/methods/utils.js +++ b/src/API/methods/utils.js @@ -34,14 +34,11 @@ const utils = { /** */ eq: function (n) { let ptr = this.pointer - let cache = this._cache || [] if (!ptr) { ptr = this.docs.map((_doc, i) => [i]) } if (ptr[n]) { - let view = this.update([ptr[n]]) - view._cache = cache[n] - return view + return this.update([ptr[n]]) } return this.none() }, diff --git a/tests/one/cache/keep-cache.test.js b/tests/one/cache/keep-cache.test.js index 41e44a627..02c8d29cf 100644 --- a/tests/one/cache/keep-cache.test.js +++ b/tests/one/cache/keep-cache.test.js @@ -30,17 +30,18 @@ test('keep cache', function (t) { cache = doc.hyphenate()._cache || [] t.ok(cache[0] && cache[0].has('one'), here + 'hyphenate') - // sort - cache = doc.sort('alpha')._cache || [] - t.ok(cache[0] && cache[0].has('one'), here + 'sort') - // reverse cache = doc.reverse()._cache || [] t.ok(cache[0] && cache[0].has('one'), here + 'reverse') + // sort + // cache = doc.sort('alpha')._cache || [] + // t.ok(cache[0] && cache[0].has('one'), here + 'sort') + t.end() }) + test('cache in match', function (t) { let doc = nlp('one two three four') let m = doc.match('one two three') @@ -55,46 +56,56 @@ test('remove cache', function (t) { doc.cache() // tag - let cache = doc.tag('Foo')._cache + let cache = doc.tag('Foog')._cache t.ok(!cache || !cache[0], here + 'tag') - cache = doc.unTag('Foo')._cache + doc.cache() + cache = doc.unTag('Foog')._cache t.ok(!cache || !cache[0], here + 'untag') + doc.cache() cache = doc.terms()._cache t.ok(!cache || !cache[0], here + 'terms') + doc.cache() cache = doc.replace('two', 'deux')._cache - t.ok(!cache || !cache[0], here + 'terms') + t.ok(!cache || !cache[0], here + 'replace') + doc.cache() cache = doc.remove('three')._cache - t.ok(!cache || !cache[0], here + 'terms') + t.ok(!cache || !cache[0], here + 'remove') + doc.cache() cache = doc.eq(1).prepend('foo')._cache - t.ok(!cache || !cache[0], here + 'terms') + t.ok(!cache || !cache[0], here + 'prepend') t.end() }) -// test('cache in loops', function (t) { -// let doc = nlp('one two match. three match four. match five six.') -// doc.cache() - -// doc.map((m, i) => { -// let cache = m._cache || [] -// t.ok(cache[0] && cache[0].has('match'), `map ${i}`) -// }) -// doc.forEach((m, i) => { -// let cache = m._cache || [] -// t.ok(cache[0] && cache[0].has('match'), `foreach ${i}`) -// }) -// doc.filter((m, i) => { -// let cache = m._cache || [] -// t.ok(cache[0] && cache[0].has('match'), `filter ${i}`) -// }) -// doc.some((m, i) => { -// let cache = m._cache || [] -// t.ok(cache[0] && cache[0].has('match'), `some ${i}`) -// }) -// t.end() -// }) \ No newline at end of file +test('cache in loops', function (t) { + let doc = nlp('one two match. three match four. match five six.') + doc.cache() + doc.map((m, i) => { + let cache = m._cache || [] + t.ok(cache[0] && cache[0].has('match'), `map ${i}`) + }) + + doc.cache() + doc.forEach((m, i) => { + let cache = m._cache || [] + t.ok(cache[0] && cache[0].has('match'), `foreach ${i}`) + }) + + doc.cache() + doc.filter((m, i) => { + let cache = m._cache || [] + t.ok(cache[0] && cache[0].has('match'), `filter ${i}`) + }) + + doc.cache() + doc.some((m, i) => { + let cache = m._cache || [] + t.ok(cache[0] && cache[0].has('match'), `some ${i}`) + }) + t.end() +}) \ No newline at end of file diff --git a/tests/three/misc.test.js b/tests/three/misc.test.js index ba53be06f..ee6d1a38c 100644 --- a/tests/three/misc.test.js +++ b/tests/three/misc.test.js @@ -62,7 +62,7 @@ test('drop back to View', function (t) { t.equal(m.viewType, 'View', here + 'insert-to-view') m = vb.remove('jack') - t.equal(m.viewType, 'View', here + 'insert-to-view') + t.equal(m.viewType, 'View', here + 'remove-to-view') m = vb.replaceWith('jack', 'blue') t.equal(m.viewType, 'View', here + 'replace-to-view') From d8a88acafd5c33a6fbae2d4716eed2822dba0b68 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 30 Jun 2022 14:20:26 -0400 Subject: [PATCH 11/27] lazy is working --- plugins/speed/README.md | 15 ++++----- plugins/speed/package-lock.json | 15 ++++++++- plugins/speed/package.json | 3 +- plugins/speed/scratch.js | 37 ++++++++--------------- plugins/speed/src/lazyParse/lazyParse.js | 7 +++-- plugins/speed/src/lazyParse/maybeMatch.js | 14 ++++----- plugins/speed/src/lazyParse/plugin.js | 4 --- plugins/speed/src/plugin.js | 3 -- plugins/speed/tests/lazy.test.js | 30 ++++++++++++++++++ 9 files changed, 75 insertions(+), 53 deletions(-) create mode 100644 plugins/speed/tests/lazy.test.js diff --git a/plugins/speed/README.md b/plugins/speed/README.md index 5d9f30c20..651225b47 100644 --- a/plugins/speed/README.md +++ b/plugins/speed/README.md @@ -21,12 +21,15 @@ +to install: +```js +import plg from 'compromise-speed' +nlp.extend(plug) +``` + ### WorkerPool parse sentences of a large text in parallel: ```js -import {workerPool} from 'compromise-speed' -nlp.extend(workerPool) - let doc = await nlp.workerPool(myNovel, 'the #Adjective of #Noun') doc.debug()//results ``` @@ -48,9 +51,6 @@ doc.debug()//results ### StreamFile parse and process a file from your filesystem, without loading it all into memory: ```js -import {streamFile} from 'compromise-speed' -nlp.extend(streamFile) - nlp.streamFile('./path/to/file.txt', (s)=>{ // map fn on each sentence return s.if('the #Adjective of times') @@ -67,9 +67,6 @@ This plugin will cache any already-parsed sentences, and combine them in-memory, it will also un-cache any temporary sentences, to clear-up memory. ```js -import {keyPress} from 'compromise-speed' -nlp.extend(keyPress) - let doc = nlp.keyPress('parsed once. it was the blurst of') doc = nlp.keyPress('parsed once. it was the blurst of times') ``` diff --git a/plugins/speed/package-lock.json b/plugins/speed/package-lock.json index 1e1dcbf3c..df2208c9e 100644 --- a/plugins/speed/package-lock.json +++ b/plugins/speed/package-lock.json @@ -9,7 +9,8 @@ "version": "0.1.0", "license": "MIT", "devDependencies": { - "compromise": "14.3.1" + "compromise": "14.3.1", + "nlp-corpus": "^4.4.0" }, "peerDependencies": { "compromise": ">=14.0.0" @@ -47,6 +48,12 @@ "node": ">=8.0.0" } }, + "node_modules/nlp-corpus": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/nlp-corpus/-/nlp-corpus-4.4.0.tgz", + "integrity": "sha512-1vOdUcAoOi1p85iZTC5SZWiIB1H3sDQxgyb4wTF0bZ9QgAVSJjl/Bck0lC5sG4quFgJ6Bz2K5mTaknhBlfEmvw==", + "dev": true + }, "node_modules/suffix-thumb": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz", @@ -78,6 +85,12 @@ "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", "dev": true }, + "nlp-corpus": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/nlp-corpus/-/nlp-corpus-4.4.0.tgz", + "integrity": "sha512-1vOdUcAoOi1p85iZTC5SZWiIB1H3sDQxgyb4wTF0bZ9QgAVSJjl/Bck0lC5sG4quFgJ6Bz2K5mTaknhBlfEmvw==", + "dev": true + }, "suffix-thumb": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/suffix-thumb/-/suffix-thumb-4.0.2.tgz", diff --git a/plugins/speed/package.json b/plugins/speed/package.json index 741bafd23..d7441c83f 100644 --- a/plugins/speed/package.json +++ b/plugins/speed/package.json @@ -35,7 +35,8 @@ "compromise": ">=14.0.0" }, "devDependencies": { - "compromise": "14.3.1" + "compromise": "14.3.1", + "nlp-corpus": "^4.4.0" }, "license": "MIT" } diff --git a/plugins/speed/scratch.js b/plugins/speed/scratch.js index 5d688e7c3..530eae652 100644 --- a/plugins/speed/scratch.js +++ b/plugins/speed/scratch.js @@ -1,44 +1,31 @@ /* eslint-disable no-console, no-unused-vars */ import nlp from '../../src/three.js' import fs from 'fs' -// import workerPool from './src/workerPool/index.js' -import { streamFile, workerPool, lazyParse } from './src/plugin.js' -nlp.plugin(lazyParse) -nlp.plugin(streamFile) -nlp.plugin(workerPool) +import plg from './src/plugin.js' +nlp.plugin(plg) let file = `/Users/spencer/data/infinite-jest/infinite-jest.txt` // file = `/Users/spencer/mountain/compromise/plugins/speed/tests/files/freshPrince.txt` let begin = new Date() let txt = fs.readFileSync(file).toString() -// let net = nlp.buildNet([ -// { match: 'every single #Noun' }, -// { match: 'not (a|one) #Noun' }, -// ]) -const doc = nlp.lazyParse(txt, 'every single #Noun') +let net = nlp.buildNet([ + { match: 'every single #Noun' }, + { match: 'not (a|one) #Noun' }, +]) +// const doc = nlp.lazy(txt, 'every single #Noun') +const doc = nlp.lazy(txt, net) doc.debug() -// doc.tagger() -// doc.debug() -// let m = doc.maybeMatch(net).debug() -// console.log(m._cache) -// let res = nlp(txt).match('every single #Noun') -// console.log(res.length, 'matches') +// let doc = nlp(txt).match('every single #Noun') +// let doc = nlp(txt).match(net) +// doc.debug() +console.log(doc.length, 'matches') // let doc = await nlp.workerPool(txt, 'my #Adjective #Noun') // doc.debug() // console.log(doc.length) console.log((new Date().getTime() - begin.getTime()) / 1000, 's') - -// nlp.streamFile(file, (s) => { -// return s.match('every single #Noun') -// }).then(res => { -// console.log(res.length, 'matches') -// res.debug() -// console.log((new Date().getTime() - begin.getTime()) / 1000, 's') -// }) - diff --git a/plugins/speed/src/lazyParse/lazyParse.js b/plugins/speed/src/lazyParse/lazyParse.js index f9582d521..c917a064b 100644 --- a/plugins/speed/src/lazyParse/lazyParse.js +++ b/plugins/speed/src/lazyParse/lazyParse.js @@ -1,3 +1,5 @@ +import maybeMatch from './maybeMatch.js' + // tokenize first, then only tag sentences required const lazyParse = function (input, reg) { let net = reg @@ -5,10 +7,9 @@ const lazyParse = function (input, reg) { net = this.buildNet([{ match: reg }]) } let doc = this.tokenize(input) - let m = doc.maybeMatch(net) + let m = maybeMatch(doc, net) if (m.found) { - m.compute(['lexicon']) - // m.compute(['lexicon', 'preTagger', 'postTagger']) + m.compute(['index', 'tagger']) return m.match(reg) } return doc.none() diff --git a/plugins/speed/src/lazyParse/maybeMatch.js b/plugins/speed/src/lazyParse/maybeMatch.js index a316790f3..803b5eefc 100644 --- a/plugins/speed/src/lazyParse/maybeMatch.js +++ b/plugins/speed/src/lazyParse/maybeMatch.js @@ -2,19 +2,19 @@ const getWords = function (net) { return Object.keys(net.hooks).filter(w => !w.startsWith('#') && !w.startsWith('%')) } -const maybeMatch = function (net) { +const maybeMatch = function (doc, net) { // must have *atleast* one of these words let words = getWords(net) if (words.length === 0) { - return this + return doc } - - if (!this._cache) { - this.cache() + if (!doc._cache) { + doc.cache() } + let cache = doc._cache // return sentences that have one of our needed words - return this.filter(m => { - return words.some(str => m._cache.has(str)) + return doc.filter((_m, i) => { + return words.some(str => cache[i].has(str)) }) } export default maybeMatch \ No newline at end of file diff --git a/plugins/speed/src/lazyParse/plugin.js b/plugins/speed/src/lazyParse/plugin.js index c5b32230f..4233f4340 100644 --- a/plugins/speed/src/lazyParse/plugin.js +++ b/plugins/speed/src/lazyParse/plugin.js @@ -1,10 +1,6 @@ -import maybeMatch from './maybeMatch.js' import lazy from './lazyParse.js' export default { - api: function (View) { - View.prototype.maybeMatch = maybeMatch - }, lib: { lazy } diff --git a/plugins/speed/src/plugin.js b/plugins/speed/src/plugin.js index 8304189e0..3da5b1d56 100644 --- a/plugins/speed/src/plugin.js +++ b/plugins/speed/src/plugin.js @@ -5,9 +5,6 @@ import lazyParse from './lazyParse/plugin.js' // combine all the plugins const plugin = { - api: function (view) { - lazyParse.api(view) - }, lib: Object.assign({}, streamFile.lib, keyPress.lib, workerPool.lib, lazyParse.lib), } diff --git a/plugins/speed/tests/lazy.test.js b/plugins/speed/tests/lazy.test.js new file mode 100644 index 000000000..df004341f --- /dev/null +++ b/plugins/speed/tests/lazy.test.js @@ -0,0 +1,30 @@ +import test from 'tape' +import nlp from './_lib.js' +import plg from '../src/plugin.js' +import corpus from 'nlp-corpus' +const here = '[lazy] ' +nlp.plugin(plg) + + +test('lazy matches are correct', function (t) { + let txt = corpus.some(2000).join('\n') + let arr = [ + 'captain .', + '. of the #Noun', + '#Adverb #Adverb+', + '#Url #Noun .?', + 'certain !#Plural' + ] + arr.forEach(str => { + // let begin = new Date() + let reg = nlp(txt).match(str) + // console.log((new Date().getTime() - begin.getTime()) / 1000) + // begin = new Date() + let lazy = nlp.lazy(txt, str) + // console.log('->', (new Date().getTime() - begin.getTime()) / 1000) + + t.equal(reg.length, lazy.length, here + ' ' + str) + // t.deepEqual(reg.out('array'), lazy.out('array'), here + ' ' + str) + }) + t.end() +}) \ No newline at end of file From 632f5d93e29fc3126b6a11098a0fe3b06a5e82c8 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 13:59:37 -0400 Subject: [PATCH 12/27] add lazy and sweep to readme --- API.md | 2 +- README.md | 16 ++++-- builds/compromise.js | 4 +- builds/one/compromise-one.cjs | 4 +- builds/one/compromise-one.mjs | 4 +- builds/three/compromise-three.cjs | 4 +- builds/three/compromise-three.mjs | 4 +- builds/two/compromise-two.cjs | 4 +- builds/two/compromise-two.mjs | 4 +- changelog.md | 1 + issues.js | 53 ++--------------- plugins/speed/tests/lazy.test.js | 30 ---------- plugins/wikipedia/src/plugin.js | 2 +- scratch.js | 57 +++++++++++++++---- scripts/perf/pool/lookup-worker.js | 2 +- scripts/typescript/one.ts | 2 +- .../api/{compile => buildTrie}/compress.js | 0 .../{compile/build.js => buildTrie/index.js} | 0 src/1-one/lookup/api/index.js | 2 +- src/1-one/lookup/plugin.js | 8 ++- src/1-one/sweep/methods/buildNet/index.js | 4 +- src/2-two/lazy/lazyParse.js | 17 ++++++ src/2-two/lazy/maybeMatch.js | 20 +++++++ src/2-two/lazy/plugin.js | 7 +++ src/nlp.js | 1 - src/two.js | 2 + tests/one/lookup/lookup-long.test.js | 2 +- tests/one/lookup/lookup.test.js | 34 +++++------ .../contractions/match-contraction.test.js | 2 +- tests/two/misc/lazy.test.js | 22 +++++++ tests/two/{ => tagger}/number-match.test.js | 2 +- types/misc.ts | 14 +++++ types/one.d.ts | 6 +- types/three.d.ts | 6 +- types/two.d.ts | 8 ++- types/view/one.ts | 14 +++-- 36 files changed, 215 insertions(+), 149 deletions(-) delete mode 100644 plugins/speed/tests/lazy.test.js rename src/1-one/lookup/api/{compile => buildTrie}/compress.js (100%) rename src/1-one/lookup/api/{compile/build.js => buildTrie/index.js} (100%) create mode 100644 src/2-two/lazy/lazyParse.js create mode 100644 src/2-two/lazy/maybeMatch.js create mode 100644 src/2-two/lazy/plugin.js create mode 100644 tests/two/misc/lazy.test.js rename tests/two/{ => tagger}/number-match.test.js (99%) diff --git a/API.md b/API.md index f069f9770..b6ab4d617 100644 --- a/API.md +++ b/API.md @@ -146,7 +146,7 @@ * .uncache() ### Lookup -* nlp.compile() +* nlp.buildTrie() * .lookup() ### Typeahead diff --git a/README.md b/README.md index 4cd6c8604..ac6af2b72 100644 --- a/README.md +++ b/README.md @@ -512,6 +512,7 @@ _(match methods use the [match-syntax](https://docs.compromise.cool/compromise-m - **[.growRight('')](https://observablehq.com/@spencermountain/compromise-match)** - add any matching terms immediately after each match - **[.growLeft('')](https://observablehq.com/@spencermountain/compromise-match)** - add any matching terms immediately before each match - **[.grow('')](https://observablehq.com/@spencermountain/compromise-match)** - add any matching terms before or after each match +- **[.sweep(net)](https://observablehq.com/@spencermountain/compromise-sweep)** - apply a series of match objects to the document - **[.splitOn('')](https://observablehq.com/@spencermountain/compromise-split)** - return a Document with three parts for every match ('splitOn') - **[.splitBefore('')](https://observablehq.com/@spencermountain/compromise-split)** - partition a phrase before each matching segment - **[.splitAfter('')](https://observablehq.com/@spencermountain/compromise-split)** - partition a phrase after each matching segment @@ -573,16 +574,23 @@ _(match methods use the [match-syntax](https://docs.compromise.cool/compromise-m _(these methods are on the main `nlp` object)_ -- **[nlp.tokenize()](https://observablehq.com/@spencermountain/compromise-tokenization)** - parse text without running POS-tagging -- **[nlp.plugin()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - mix in a compromise-plugin -- **[nlp.parseMatch()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - pre-parse any match statements for faster lookups +- **[nlp.tokenize(str)](https://observablehq.com/@spencermountain/compromise-tokenization)** - parse text without running POS-tagging +- **[nlp.lazy(str, match)](https://observablehq.com/@spencermountain/compromise-performance)** - scan through a text with minimal analysis +- **[nlp.plugin({})](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - mix in a compromise-plugin +- **[nlp.parseMatch(str)](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - pre-parse any match statements into json - **[nlp.world()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - grab or change library internals - **[nlp.model()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - grab all current linguistic data - **[nlp.methods()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - grab or change internal methods - **[nlp.hooks()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - see which compute methods run automatically -- **[nlp.verbose()](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - log our decision-making for debugging +- **[nlp.verbose(mode)](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - log our decision-making for debugging - **[nlp.version](https://observablehq.com/@spencermountain/compromise-constructor-methods)** - current semver version of the library +- **[nlp.addWords(obj)](https://observablehq.com/@spencermountain/compromise-plugin)** - add new words to the lexicon +- **[nlp.addTags(obj)](https://observablehq.com/@spencermountain/compromise-plugin)** - add new tags to the tagSet +- **[nlp.typeahead(arr)](https://observablehq.com/@spencermountain/compromise-typeahead)** - add words to the auto-fill dictionary +- **[nlp.buildTrie(arr)](https://observablehq.com/@spencermountain/compromise-lookup)** - compile a list of words into a fast lookup form +- **[nlp.buildNet(arr)](https://observablehq.com/@spencermountain/compromise-sweep)** - compile a list of matches into a fast match form + diff --git a/builds/compromise.js b/builds/compromise.js index 17a275963..e88969535 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),k(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e},Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>vt(e,","),hasPeriod:e=>!0===vt(e,".")&&!1===vt(e,"..."),hasExclamation:e=>vt(e,"!"),hasQuestionMark:e=>vt(e,"?")||vt(e,"¿"),hasEllipses:e=>vt(e,"..")||vt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>vt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=r-e.t),e.t=r,!0)};const Nt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=xt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==jt(e,a)){if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Gt(a))return null;if(!0!==e.optional)return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Tt(a))return null}else if(!It(a))return null}else if(!Et(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=cn.blue(" │ ")+cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${cn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var gn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},jn=function(e,t){let n=e.concat(t),r=kn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},En=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},In=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=Nn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.not=function(e){e=Nn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=jn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:An,api:function(e){Object.assign(e.prototype,Tn)}};const Dn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Dn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Dn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Vn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Bn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},zn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=On(a,t.hooks);return o=Vn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Bn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,a)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Fn=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,r){let a=t.split(Fn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nMn(e,t,n,r))};var Ln=Mn,Wn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Jn({id:e})),t}return[Jn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),_n=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Jn({});return e.forEach(e=>{if((e=Jn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Jn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Rn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:Zn,txt:Zn,array:Yn,flat:Yn},er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},tr=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},nr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!nr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Jn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Jn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){tr(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return tr(this.json),er(this.json,e)}debug(){return tr(this.json),er(this.json,"debug"),this}}const rr=function(e){let t=_n(e);return new g$1(t)};rr.prototype.plugin=function(e){e(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(e){if(ar.hasOwnProperty(e.id))return ar[e.id];if(ar.hasOwnProperty(e.is))return ar[e.is];let t=e._cache.parents.find(e=>ar[e]);return ar[t]};var ir=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:or(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sr=function(e){return e?"string"==typeof e?[e]:e:[]};var lr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sr(e[t].children),e[t].not=sr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ur={one:{setTag:Ln,unTag:Wn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=lr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return rr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ir(n)}}};const cr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),cr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return cr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},dr=function(e){Object.assign(e.prototype,hr)},pr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const mr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(mr.has(e)||!t.hasOwnProperty(n))return 1;if(mr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:ur,api:dr,lib:pr};const fr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,br=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var vr=function(e){let t=[],n=e.split(br);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,$r=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Sr=/^[a-z]\.([a-z]\.)+/i,Hr=/^[-+.][0-9]/,Mr=/^'[0-9]{2}/;var Lr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(zr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Hr.test(e)?"'"===n&&Mr.test(e)?(n="",t):"":(n="",t)))).replace($r,a=>(r=a,Fr.test(a)&&/[sn]['’]$/.test(t)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Sr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Wr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Jr=/([A-Z]\.)+[A-Z]?,?$/,qr=/^[A-Z]\.,?$/,Kr=/[A-Z]{2,}('s|,)?$/,Rr=/([a-z]\.)+[a-z]\.?$/;var Ur=function(e){return function(e){return!0===Jr.test(e)||!0===Rr.test(e)||!0===qr.test(e)||!0===Kr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wr(r),r=n(r,t),r=Ur(r),e.normal=r},_r={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Er,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Vr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Dr(n),n=Tr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Lr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Qr(e,t)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Yr={},Xr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Yr[t]=!0,Xr[t]="Abbreviation",void 0!==e[1]&&(Xr[t]=[Xr[t],e[1]])})});var ea=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ta={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},na={};Object.keys(ta).forEach((function(e){ta[e].split("").forEach((function(t){na[t]=e}))}));const ra=/\//,aa=/[a-z]\.[a-z]/i,oa=/[0-9]/;var ia=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ra.test(n)&&!aa.test(n)&&!oa.test(n)){let t=n.split(ra);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const sa=/^\p{Letter}+-\p{Letter}+$/u;var la=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),sa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ua=function(e){let t=0,n=0,r=e.document;for(let e=0;eca(e,ia),machine:e=>ca(e,la),normal:e=>ca(e,Qr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ma={safe:!0,min:3};var ga={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=da},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ma,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=pa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(yn),m.extend(St),m.extend(Gn),m.extend(gr),m.plugin(be),m.extend(ha),m.plugin(f),m.extend(Te),m.extend(ga),m.extend(Pe),m.extend($n);var fa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ba={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const va=36,ya="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wa=ya.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ka=function(e){if(void 0!==wa[e])return wa[e];let t=0,n=1,r=va,a=1;for(;n=0;n--,a*=va){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Pa=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=ja(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xa(ba[e]);Ta.test(e)?Object.keys(t).forEach(t=>{if(Da[t]=e,"Noun|Verb"===e){let e=Ia(t,Ca);Da[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ga[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ga[e]="Emoticon"),delete Ga[""],delete Ga.null,delete Ga[" "];const Oa="Adjective";var Va={beforeTags:{Determiner:Oa,Possessive:Oa},afterTags:{Adjective:Oa},beforeWords:{seem:Oa,seemed:Oa,seems:Oa,feel:Oa,feels:Oa,felt:Oa,appear:Oa,appears:Oa,appeared:Oa,also:Oa,over:Oa,under:Oa,too:Oa,it:Oa,but:Oa,still:Oa,really:Oa,quite:Oa,well:Oa,very:Oa,deeply:Oa,profoundly:Oa,extremely:Oa,so:Oa,badly:Oa,mostly:Oa,totally:Oa,awfully:Oa,rather:Oa,nothing:Oa,something:Oa,anything:Oa},afterWords:{too:Oa,also:Oa,or:Oa}};const Ba="Gerund";var za={beforeTags:{Adverb:Ba,Preposition:Ba,Conjunction:Ba},afterTags:{Adverb:Ba,Possessive:Ba,Person:Ba,Pronoun:Ba,Determiner:Ba,Copula:Ba,Preposition:Ba,Conjunction:Ba,Comparative:Ba},beforeWords:{been:Ba,keep:Ba,continue:Ba,stop:Ba,am:Ba,be:Ba,me:Ba,began:Ba,start:Ba,starts:Ba,started:Ba,stops:Ba,stopped:Ba,help:Ba,helps:Ba,avoid:Ba,avoids:Ba,love:Ba,loves:Ba,loved:Ba,hate:Ba,hates:Ba,hated:Ba},afterWords:{you:Ba,me:Ba,her:Ba,him:Ba,them:Ba,their:Ba,it:Ba,this:Ba,there:Ba,on:Ba,about:Ba,for:Ba}},$a={beforeTags:Object.assign({},Va.beforeTags,za.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Va.afterTags,za.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Va.beforeWords,za.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Va.afterWords,za.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fa="Singular";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa,Acronym:Fa,Noun:Fa,Adjective:Fa,PresentTense:Fa,Gerund:Fa,PastTense:Fa,Infinitive:Fa,Date:Fa},afterTags:{Value:Fa,Modal:Fa,Copula:Fa,PresentTense:Fa,PastTense:Fa,Demonym:Fa},beforeWords:{the:Fa,with:Fa,without:Fa,of:Fa,for:Fa,any:Fa,all:Fa,on:Fa,cut:Fa,cuts:Fa,save:Fa,saved:Fa,saves:Fa,make:Fa,makes:Fa,made:Fa,minus:Fa,plus:Fa,than:Fa,another:Fa,versus:Fa,neither:Fa,favorite:Fa,best:Fa,daily:Fa,weekly:Fa,linear:Fa,binary:Fa,mobile:Fa,lexical:Fa,technical:Fa,computer:Fa,scientific:Fa,formal:Fa},afterWords:{of:Fa,system:Fa,aid:Fa,method:Fa,utility:Fa,tool:Fa,reform:Fa,therapy:Fa,philosophy:Fa,room:Fa,authority:Fa,says:Fa,said:Fa,wants:Fa,wanted:Fa}};const Ha={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ma={beforeTags:Object.assign({},Va.beforeTags,Sa.beforeTags,Ha.beforeTags),afterTags:Object.assign({},Va.afterTags,Sa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Sa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Sa.afterWords)};const La={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Wa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},qa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ka={beforeTags:Object.assign({},Va.beforeTags,La),afterTags:Object.assign({},Va.afterTags,Wa),beforeWords:Object.assign({},Va.beforeWords,Ja),afterWords:Object.assign({},Va.afterWords,qa)};const Ra="Infinitive";var Ua={beforeTags:{Modal:Ra,Adverb:Ra,Negative:Ra,Plural:Ra},afterTags:{Determiner:Ra,Adverb:Ra,Possessive:Ra,Preposition:Ra},beforeWords:{i:Ra,we:Ra,you:Ra,they:Ra,to:Ra,please:Ra,will:Ra,have:Ra,had:Ra,would:Ra,could:Ra,should:Ra,do:Ra,did:Ra,does:Ra,can:Ra,must:Ra,us:Ra,me:Ra,he:Ra,she:Ra,it:Ra,being:Ra},afterWords:{the:Ra,me:Ra,you:Ra,him:Ra,her:Ra,them:Ra,it:Ra,a:Ra,an:Ra,up:Ra,down:Ra,by:Ra,out:Ra,off:Ra,under:Ra,when:Ra,all:Ra,to:Ra,because:Ra,although:Ra,before:Ra,how:Ra,otherwise:Ra,together:Ra,though:Ra,yet:Ra}};const Qa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var _a={beforeTags:Object.assign({},Va.beforeTags,Ua.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Va.afterTags,Ua.afterTags,Qa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Ua.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Ua.afterWords,{to:void 0})};const Za={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ya={},Xa={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},eo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var to={beforeTags:Object.assign({},za.beforeTags,Sa.beforeTags,Za),afterTags:Object.assign({},za.afterTags,Sa.afterTags,Ya),beforeWords:Object.assign({},za.beforeWords,Sa.beforeWords,Xa),afterWords:Object.assign({},za.afterWords,Sa.afterWords,eo)},no={beforeTags:Object.assign({},Ua.beforeTags,Sa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ua.afterTags,Sa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ua.beforeWords,Sa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ua.afterWords,Sa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ro="Person";var ao={beforeTags:{Honorific:ro,Person:ro,Preposition:ro},afterTags:{Person:ro,ProperNoun:ro,Verb:ro},ownTags:{ProperNoun:ro},beforeWords:{hi:ro,hey:ro,yo:ro,dear:ro,hello:ro},afterWords:{said:ro,says:ro,told:ro,tells:ro,feels:ro,felt:ro,seems:ro,thinks:ro,thought:ro,spends:ro,spendt:ro,plays:ro,played:ro,sing:ro,sang:ro,learn:ro,learned:ro,wants:ro,wanted:ro}};const oo="Month",io={beforeTags:{Date:oo,Value:oo},afterTags:{Date:oo,Value:oo},beforeWords:{by:oo,in:oo,on:oo,during:oo,after:oo,before:oo,between:oo,until:oo,til:oo,sometime:oo,of:oo,this:oo,next:oo,last:oo,previous:oo,following:oo},afterWords:{sometime:oo,in:oo,of:oo,until:oo,the:oo}};var so={beforeTags:Object.assign({},ao.beforeTags,io.beforeTags),afterTags:Object.assign({},ao.afterTags,io.afterTags),beforeWords:Object.assign({},ao.beforeWords,io.beforeWords),afterWords:Object.assign({},ao.afterWords,io.afterWords)};const lo={Place:"Place"},uo={Place:"Place",Abbreviation:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ho={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},po={"Adj|Gerund":$a,"Adj|Noun":Ma,"Adj|Past":Ka,"Adj|Present":_a,"Noun|Verb":no,"Noun|Gerund":to,"Person|Noun":{beforeTags:Object.assign({},Sa.beforeTags,ao.beforeTags),afterTags:Object.assign({},Sa.afterTags,ao.afterTags),beforeWords:Object.assign({},Sa.beforeWords,ao.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Sa.afterWords,ao.afterWords)},"Person|Date":so,"Person|Verb":{beforeTags:Object.assign({},ao.beforeTags,Ua.beforeTags),afterTags:Object.assign({},ao.afterTags,Ua.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ua.beforeWords),afterWords:Object.assign({},ao.afterWords,Ua.afterWords)},"Person|Place":{beforeTags:Object.assign({},lo,ao.beforeTags),afterTags:Object.assign({},uo,ao.afterTags),beforeWords:Object.assign({},co,ao.beforeWords),afterWords:Object.assign({},ho,ao.afterWords)}},mo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};po["Plural|Verb"]={beforeWords:mo(po["Noun|Verb"].beforeWords,{}),afterWords:mo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:mo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:mo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var go=po;const fo="Adjective",bo="Infinitive",vo="PresentTense",yo="Singular",wo="PastTense",ko="Adverb",Po="Plural",Ao="Actor",jo="Verb",xo="Noun",Eo="LastName",No="Modal",Io="Participle";var To=[null,null,{ea:yo,ia:xo,ic:fo,ly:ko,"'n":jo,"'t":jo},{oed:wo,ued:wo,xed:wo," so":ko,"'ll":No,"'re":"Copula",azy:fo,eer:xo,end:jo,ped:wo,ffy:fo,ify:bo,ing:"Gerund",ize:bo,ibe:bo,lar:fo,mum:fo,nes:vo,nny:fo,ous:fo,que:fo,rol:yo,sis:yo,ogy:yo,oid:yo,ian:yo,zes:vo,eld:wo,ken:Io,ven:Io,ten:Io,ect:bo,ict:bo,ign:bo,ful:fo,bal:fo},{amed:wo,aped:wo,ched:wo,lked:wo,rked:wo,reed:wo,nded:wo,mned:fo,cted:wo,dged:wo,ield:yo,akis:Eo,cede:bo,chuk:Eo,czyk:Eo,ects:vo,ends:jo,enko:Eo,ette:yo,wner:yo,fies:vo,fore:ko,gate:bo,gone:fo,ices:Po,ints:Po,ruct:bo,ines:Po,ions:Po,less:fo,llen:fo,made:fo,nsen:Eo,oses:vo,ould:No,some:fo,sson:Eo,tion:yo,tage:xo,ique:yo,tive:fo,tors:xo,vice:yo,lier:yo,fier:yo,wned:wo,gent:yo,tist:yo,pist:yo,rist:yo,mist:yo,yist:yo,vist:yo,lite:yo,site:yo,rite:yo,mite:yo,bite:yo,mate:yo,date:yo,ndal:yo,vent:yo,uist:yo,gist:yo,note:yo,cide:yo,wide:fo,vide:bo,ract:bo,duce:bo,pose:bo,eive:bo,lyze:bo,lyse:bo,iant:fo,nary:fo},{elist:yo,holic:yo,phite:yo,tized:wo,urned:wo,eased:wo,ances:Po,bound:fo,ettes:Po,fully:ko,ishes:vo,ities:Po,marek:Eo,nssen:Eo,ology:xo,osome:yo,tment:yo,ports:Po,rough:fo,tches:vo,tieth:"Ordinal",tures:Po,wards:ko,where:ko,archy:xo,pathy:xo,opoly:xo,embly:xo,phate:xo,ndent:yo,scent:yo,onist:yo,anist:yo,alist:yo,olist:yo,icist:yo,ounce:bo,iable:fo,borne:fo,gnant:fo,inant:fo,igent:fo,atory:fo,rient:yo,dient:yo},{auskas:Eo,parent:yo,cedent:yo,ionary:yo,cklist:yo,keeper:Ao,logist:Ao,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const Go="Adjective",Do="Noun",Co="Verb";var Oo=[null,null,{},{neo:Do,bio:Do,"de-":Co,"re-":Co,"un-":Co},{anti:Do,auto:Do,faux:Go,hexa:Do,kilo:Do,mono:Do,nano:Do,octa:Do,poly:Do,semi:Go,tele:Do,"pro-":Go,"mis-":Co,"dis-":Co,"pre-":Go},{anglo:Do,centi:Do,ethno:Do,ferro:Do,grand:Do,hepta:Do,hydro:Do,intro:Do,macro:Do,micro:Do,milli:Do,nitro:Do,penta:Do,quasi:Go,radio:Do,tetra:Do,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:Do}];const Vo="Adjective",Bo="Infinitive",zo="PresentTense",$o="Singular",Fo="PastTense",So="Adverb",Ho="Expression",Mo="Actor",Lo="Verb",Wo="Noun",Jo="LastName";var qo={a:[[/.[aeiou]na$/,Wo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,$o,"harmonica"],[/^([hyj]a+)+$/,Ho,"haha"]],c:[[/.[^aeiou]ic$/,Vo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fo,"rammed"],[/.[aeiou][sg]hed$/,Fo,"gushed"],[/.[aeiou]red$/,Fo,"hired"],[/.[aeiou]r?ried$/,Fo,"hurried"],[/[^aeiou]ard$/,$o,"steward"],[/[aeiou][^aeiou]id$/,Vo,""],[/.[vrl]id$/,Vo,"livid"],[/..led$/,Fo,"hurled"],[/.[iao]sed$/,Fo,""],[/[aeiou]n?[cs]ed$/,Fo,""],[/[aeiou][rl]?[mnf]ed$/,Fo,""],[/[aeiou][ns]?c?ked$/,Fo,"bunked"],[/[aeiou]gned$/,Fo],[/[aeiou][nl]?ged$/,Fo],[/.[tdbwxyz]ed$/,Fo],[/[^aeiou][aeiou][tvx]ed$/,Fo],[/.[cdflmnprstv]ied$/,Fo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,Vo,"fixable"],[/.[^aeiou]eable$/,Vo,"maleable"],[/.[ts]ive$/,Vo,"festive"],[/[a-z]-like$/,Vo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vo,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Ho,"ughh"],[/^uh[ -]?oh$/,Ho,"uhoh"],[/[a-z]-ish$/,Vo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Ho,"kkkk"]],l:[[/.[gl]ial$/,Vo,"familial"],[/.[^aeiou]ful$/,Vo,"fitful"],[/.[nrtumcd]al$/,Vo,"natal"],[/.[^aeiou][ei]al$/,Vo,"familial"]],m:[[/.[^aeiou]ium$/,$o,"magnesium"],[/[^aeiou]ism$/,$o,"schism"],[/^[hu]m+$/,Ho,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vo,"republican"],[/[^aeiou]ician$/,Mo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ho,"noooo"],[/^(yo)+$/,Ho,"yoo"],[/^wo{2,}[pt]?$/,Ho,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$o],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,Mo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vo],[/[aeiou].*ist$/,Vo],[/^[a-z]et$/,Lo]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,Lo],[/.[lstrn]us$/,$o],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,$o],[/[a-z]'s$/,Wo],[/^yes+$/,Ho]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Vo],[/.[st]ty$/,Vo],[/.[tnl]ary$/,Vo],[/.[oe]ry$/,$o],[/[rdntkbhs]ly$/,So],[/.(gg|bb|zz)ly$/,Vo],[/...lly$/,So],[/.[gk]y$/,Vo],[/[bszmp]{2}y$/,Vo],[/.[ai]my$/,Vo],[/[ea]{2}zy$/,Vo],[/.[^aeiou]ity$/,$o]]};const Ko="Verb",Ro="Noun";var Uo={leftTags:[["Adjective",Ro],["Possessive",Ro],["Determiner",Ro],["Adverb",Ko],["Pronoun",Ko],["Value",Ro],["Ordinal",Ro],["Modal",Ko],["Superlative",Ro],["Demonym",Ro],["Honorific","Person"]],leftWords:[["i",Ko],["first",Ro],["it",Ko],["there",Ko],["not",Ko],["because",Ro],["if",Ro],["but",Ro],["who",Ko],["this",Ro],["his",Ro],["when",Ro],["you",Ko],["very","Adjective"],["old",Ro],["never",Ko],["before",Ro],["a","Singular"],["the",Ro],["been",Ko]],rightTags:[["Copula",Ro],["PastTense",Ro],["Conjunction",Ro],["Modal",Ro]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["only",Ko],["him",Ko],["it",Ko],["were",Ro],["took",Ro],["himself",Ko],["went",Ro],["who",Ro],["jr","Person"]]},Qo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},_o={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Zo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Yo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Xo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ei=/^.([0-9]+)/;var ti=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ei);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ei,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ri=/^([0-9]+)/,ai=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ri);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ri,"")]}(n[0],n[1])})};var oi=function(e={}){return(e=Object.assign({},e)).rules=ai(e.rules),e.rules=ni(e.rules),e.rev&&(e.rev=ai(e.rev),e.rev=ni(e.rev)),e.exceptions=ai(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ii=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const si=oi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),li=oi(Yo),ui=oi(_o),ci=oi(Zo),hi=ii(si),di=ii(li),pi=ii(ui),mi=ii(ci),gi=oi(Qo),fi=oi(Xo);var bi={fromPast:si,fromPresent:li,fromGerund:ui,fromParticiple:ci,toPast:hi,toPresent:di,toGerund:pi,toParticiple:mi,toComparative:gi,toSuperlative:fi,fromComparative:ii(gi),fromSuperlative:ii(fi)},vi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),yi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],wi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ki[t].forEach(n=>e[n]=t),e),{});var Pi=ki,Ai=function(e){let t=e.substring(e.length-3);if(!0===Pi.hasOwnProperty(t))return Pi[t];let n=e.substring(e.length-2);return!0===Pi.hasOwnProperty(n)?Pi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ji={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var xi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ai(e)),ji.hasOwnProperty(e))c=ji[e];else if("Participle"===n)c=ti(l,i);else if("PastTense"===n)c=ti(l,r);else if("PresentTense"===n)c=ti(l,a);else{if("Gerund"!==n)return e;c=ti(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ei=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ti(i,n),PresentTense:ti(i,r),Gerund:ti(i,a),FutureTense:"will "+e},u=ti(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ni=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Ii="ically",Ti=new Set(["analyt"+Ii,"chem"+Ii,"class"+Ii,"clin"+Ii,"crit"+Ii,"ecolog"+Ii,"electr"+Ii,"empir"+Ii,"frant"+Ii,"grammat"+Ii,"ident"+Ii,"ideolog"+Ii,"log"+Ii,"mag"+Ii,"mathemat"+Ii,"mechan"+Ii,"med"+Ii,"method"+Ii,"method"+Ii,"mus"+Ii,"phys"+Ii,"phys"+Ii,"polit"+Ii,"pract"+Ii,"rad"+Ii,"satir"+Ii,"statist"+Ii,"techn"+Ii,"technolog"+Ii,"theoret"+Ii,"typ"+Ii,"vert"+Ii,"whims"+Ii]),Gi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Di=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ci={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Oi=function(e){return e.endsWith("ly")?Ti.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:Ci.hasOwnProperty(e)?Ci[e]:Ni(e,Gi)||e:null};const Vi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zi=function(e){if(Bi.hasOwnProperty(e))return Bi[e];let t=Ni(e,Vi);return t||e+"ly"};const $i=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Si=new Set(["terrible","annoying"]),Hi=function(e,t){const n=t.two.models.toSuperlative;return ti(e,n)},Mi=function(e,t){const n=t.two.models.toComparative;return ti(e,n)};var Li={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Wi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Li.hasOwnProperty(i)&&Li[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ia,nounToSingular:wi,verbToInfinitive:xi,getTense:Ai,verbConjugate:Ei,adjToSuperlative:Hi,adjToComparative:Mi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ti(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ti(e,n)},advToAdjective:Oi,adjToAdverb:zi,adjToNoun:function(e){if(Fi.hasOwnProperty(e))return Fi[e];if(Si.has(e))return null;let t=Ni(e,$i);return t||e+"ness"}}}},Ji=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const qi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ki=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=qi(n,"Infinitive","PastTense"),Object.assign(s,l),l=qi(r,"Infinitive","Verb"),Object.assign(s,l),l=qi(a,"Infinitive","Gerund"),Object.assign(s,l),l=qi(o,"Adjective","Superlative"),Object.assign(s,l),l=qi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ri={two:{models:bi}};const Ui={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Qi=function(e,t){const n={model:t,methods:Wi};let{lex:r,_multi:a}=Wi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},_i=function(e,t,n){let r=Ei(e,Ri);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Zi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Ui[o],"Noun|Verb"!==o&&"Person|Verb"!==o||_i(a,r,!1),"Adj|Present"===o&&(_i(a,r,!0),function(e,t,n){let r=Hi(e,n);t[r]=t[r]||"Superlative";let a=Mi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=xi(a,Ri,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=xi(a,Ri,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Qi(n,t)};let Yi={one:{_multiCache:{},lexicon:Ga},two:{irregularPlurals:fa,models:bi,suffixPatterns:To,prefixPatterns:Oo,endsWith:qo,neighbours:Uo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Da,clues:go,uncountable:{},orgWords:vi}};Yi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Qi(e.one.lexicon,e)).one.lexicon,e),e=Zi(e.two.switches,e),e=Ki(e),e=Ji(e)}(Yi);var Xi=Yi;const es=/^(under|over|mis|re|un|dis|semi)-?/;var ts=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(es.test(a.normal)){let e=a.normal.replace(es,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ns=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const rs={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},as=new Set(["formulas","koalas","israelis","menus"]),os=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var is=function(e){if(!e||e.length<=3)return!1;if(as.has(e))return!0;let t=e[e.length-1];return rs.hasOwnProperty(t)?rs[t].find(t=>e.endsWith(t)):"s"===t&&!os.find(t=>e.endsWith(t))};const ss=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ls=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(is(e.normal)?ns(e,"Plural","3-plural-guess"):ns(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ai(e.normal);t&&ns(e,t,"3-verb-tense-guess")}}(r)};const us=/^\p{Lu}[\p{Ll}'’]/u,cs=/[0-9]/,hs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,ps=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ms={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===us.test(o)&&!1===cs.test(o)?hs.find(e=>r.tags.has(e))?null:(ls(e,t,n),r.tags.has("Noun")||r.tags.clear(),ns(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&ps.test(o)&&!ms[r.normal]?(ns(r,"RomanNumeral","2-xvii"),!0):null};const fs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var bs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fs(r.normal,n.two.suffixPatterns);if(null!==e)return ns(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fs(r.implicit,n.two.suffixPatterns),null!==e))return ns(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const vs=/['‘’‛‵′`´]/,ys=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ns(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ps=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),As=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ps.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},js=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},xs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Es=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(As(a)||As(o))return ns(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(js(a)||js(o))return ns(n,"Year","2-tagYear-close");if(xs(e[t-2])||xs(e[t+2]))return ns(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ns(n,"Year","2-tagYear-noun")}}}return null};const Ns=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,Ts=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,Cs={I:!0,A:!0};var Os=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Is.test(n)||n.length>5||Cs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ts.test(n)&&!0!==Ds.test(n)&&!0!==Ns.test(n)&&!0!==Gs.test(n))}(r,n)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cs.hasOwnProperty(r.text)&&Ns.test(r.text)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ns(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Is.test(r.text)&&r.text.length<=6?(ns(r,"Acronym","3-titlecase-acronym"),!0):null};const Vs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var zs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vs(e[t-1],a),l=l||Vs(e[t+1],o),l=l||Bs(e[t-1],r),l=l||Bs(e[t+1],i),l)return ns(s,l,"3-[neighbour]"),ls(e,t,n),e[t].confidence=.2,!0}return null};const $s=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Fs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$s(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$s(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ss=function(e,t,n){0===e[t].tags.size&&(ns(e[t],"Noun","3-[fallback]"),ls(e,t,n),e[t].confidence=.1)};const Hs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ms=(e,t,n)=>0!==t||e[1]?null:n;var Ls={"Adj|Gerund":(e,t)=>Hs(e,t),"Adj|Noun":(e,t)=>Hs(e,t),"Adj|Past":(e,t)=>Hs(e,t),"Adj|Present":(e,t)=>Hs(e,t),"Noun|Gerund":(e,t)=>Hs(e,t),"Noun|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hs(e,t),"Person|Verb":(e,t)=>0!==t&&Hs(e,t)};const Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(under|over|mis|re|un|dis|semi)-?/,qs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ws.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ks=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ws.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Rs={tagSwitch:ts,checkSuffix:bs,checkRegex:ws,checkCase:gs,checkPrefix:ks,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ns(o,"Verb","3-[prefix]"),ns(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ns(o,"Adjective","3-[prefix]"),ns(o,"Prefix","3-[prefix]")))},checkYear:Es},Us={checkAcronym:Os,neighbours:zs,orgWords:Fs,nounFallback:Ss,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Js.test(l)&&!o[l]&&(l=l.replace(Js,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=qs(e[t+1],n.afterWords);return o=o||qs(e[t-1],n.beforeWords),o=o||Ks(e[t-1],n.beforeTags,a),o=o||Ks(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ls[o]&&(u=Ls[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Qs=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},Ys={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Xs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const dl=/'/;var pl=function(e,t){let n=e[t].normal.split(dl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},ml=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const gl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},fl={in:!0,by:!0,for:!0};var bl=(e,t)=>{let n=e[t];if(gl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===fl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const vl=/'/,yl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},wl={d:(e,t)=>pl(e,t),t:(e,t)=>ml(e,t),s:(e,t,n)=>bl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):hl(e,t)},kl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Pl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===vl.test(r[o].normal)&&([,i]=r[o].normal.split(vl));let s=null;wl.hasOwnProperty(i)&&(s=wl[i](r,o,t)),s&&(s=kl(s,e),ul(n,[a,o],s),yl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ll.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=sl},hooks:["contractionTwo"]};const Al="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",jl=["i","we","they"];let xl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Al+" #Person",tag:"Person",reason:"randy-smith"},{match:Al+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Al}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:jl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:jl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:jl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),El=null;var Nl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;El=El||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(El),e.uncache(),e}},model:{two:{matches:xl}},hooks:["postTagger"]},Il=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Tl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Il(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Gl={api:function(e){e.prototype.swap=Tl}};m.plugin(al),m.plugin(Pl),m.plugin(Nl),m.plugin(Gl);var Dl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Cl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ol={this:"Noun",then:"Pivot"};var Vl=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},Ll={compute:{chunks:function(e){const{document:t,world:n}=e;Vl(t),Bl(t),Fl(e,t,n),Hl(t),Ml(t)}},api:function(e){e.prototype.chunks=Cl,e.prototype.clauses=Dl},hooks:["chunks"]};const Wl=/'s$/;var Jl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ql=/\(/,Kl=/\)/,Rl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ql,"");let t=e[e.length-1];t.post=t.post.replace(Kl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Ql={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},_l=RegExp("("+Object.keys(Ql).join("|")+")"),Zl=RegExp("("+Object.values(Ql).join("|")+")"),Yl=function(e,t){const n=e[t].pre.match(_l)[0]||"";if(!n||!Ql[n])return null;const r=Ql[n];for(;t{e[0].pre=e[0].pre.replace(_l,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const eu=/\./g;var tu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},nu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const ru=(e,t)=>"number"==typeof t?e.eq(t):e,au=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var ou=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=au(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ru(t,e),new Adjectives(t.document,t.pointer)}};const iu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},su=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let lu=[["emojis","emoji"],["atmentions","atMentions"]];var uu=function(e){su.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=iu,lu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},cu={api:function(e){uu(e),Jl(e),Ul(e),Xl(e),ou(e),nu(e),tu(e)}};const hu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var du={case:e=>{hu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;hu(e,e=>e.text=n(e.text,t))},whitespace:e=>{hu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{hu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),mu="unicode|punctuation|whitespace|acronyms",gu="|case|contractions|parentheses|quotations|emoji|honorifics",fu={light:pu(mu),medium:pu(mu+gu),heavy:pu(mu+gu+"|possessives|adverbs|nouns|verbs")};var bu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=fu[e]),Object.keys(e).forEach(t=>{du.hasOwnProperty(t)&&du[t](this,e[t])}),this}}},vu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const yu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var wu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Pu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:ku(e,t),isSubordinate:wu(e),root:t}};const Au=e=>e.text(),ju=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),xu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Eu=function(e){let t=Pu(e);return{root:Au(t.root),number:xu(t.number),determiner:Au(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Nu={tags:!0};var Iu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Nu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Nu),e};const Tu={tags:!0};var Gu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Tu).tag("Singular","toPlural"),e};const Du=(e,t)=>"number"==typeof t?e.eq(t):e;var Cu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Du(this,e).map(Pu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Eu(t)),n},[])}isPlural(e){let t=this.filter(e=>Pu(e).isPlural);return Du(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Pu(e).adjectives;n.found&&(t=t.concat(n))}),Du(t,e)}toPlural(e){return Du(this,e).map(e=>Iu(e,Pu(e)))}toSingular(e){return Du(this,e).map(e=>{let t=Pu(e);return Gu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=vu(this);return t=Du(t,e),new Nouns(this.document,t.pointer)}}},Ou=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Vu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Bu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},$u=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Su=/^([0-9,. ]+)\/([0-9,. ]+)$/,Hu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Mu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Lu=function(e){if(!0===Hu.hasOwnProperty(e))return Hu[e];if("a"===e||"an"===e)return 1;const t=Vu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ju(n),r=Ju(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ju(n);let a=r.text("reduced");return Wu.test(a)&&(a=a.replace(Wu,""),r=r.replaceWith(a)),r=qu.hasOwnProperty(a)?qu[a]:Ju(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Ju(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ru=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Uu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Qu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],_u=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Zu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Uu[n][1]&&(e-=Uu[n][1],t.push(Uu[n][0]));return Qu[e]&&t.push(Qu[e]),t};var Yu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ru(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return _u.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Zu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ru(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},Xu=function(e){return e.numerator&&e.denominator?`${Yu({num:e.numerator})} out of ${Yu({num:e.denominator})}`:""};const ec={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var tc=e=>{let t=Yu(e).split(" "),n=t[t.length-1];return ec.hasOwnProperty(n)?t[t.length-1]=ec[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},nc=function(e){if(!e.numerator||!e.denominator)return"";let t=Yu({num:e.numerator}),n=tc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const rc=(e,t)=>"number"==typeof t?e.eq(t):e;var ac=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return rc(this,e).map(Ku)}get(e){return rc(this,e).map(Ku)}json(e){return rc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ku(t);return n.fraction=r,n},[])}toDecimal(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return rc(this,e).forEach(e=>{let t=Ku(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=nc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=Xu(t);e.replaceWith(n)}),this}toPercentage(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ou(this);return t=rc(t,e),new Fractions(this.document,t.pointer)}};const oc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ic=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+oc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+oc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+oc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+oc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${oc})`),r=e.has("("+oc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+oc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+oc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},sc=function(e){if("string"==typeof e)return{num:Lu(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Ku(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Lu(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}},lc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ru(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const uc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},cc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var hc=function(e){let t={suffix:"",prefix:e.prefix};return uc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+uc[e.prefix],t.prefix=""),cc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+cc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},dc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=hc(e);return t+tc(e)+n}if("Ordinal"===t)return e.prefix+lc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=hc(e);return t+Yu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pc=(e,t)=>"number"==typeof t?e.eq(t):e;var mc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return pc(this,e).map(sc)}get(e){return pc(this,e).map(sc).map(e=>e.num)}json(e){return pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=sc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=sc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=dc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=sc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=dc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>sc(t).num===e)}greaterThan(e){return this.filter(t=>sc(t).num>e)}lessThan(e){return this.filter(t=>sc(t).num{let r=sc(n).num;return r>e&&r{let n=sc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=sc(e).num);let t=this.map(t=>{let n=sc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=ic(this);return t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},gc={api:function(e){ac(e),mc(e)}};const fc={people:!0,emails:!0,phoneNumbers:!0,places:!0},bc=function(e={}){return!1!==(e=Object.assign({},fc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var vc={api:function(e){e.prototype.redact=bc}},yc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},wc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},kc=function(e){let t=e.clauses(),n=wc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Pc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Ac=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},jc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},xc=function(e){return e.verbs().toInfinitive(),e};const Ec=(e,t)=>"number"==typeof t?e.eq(t):e;var Nc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=kc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ec(this,e).map(e=>(kc(e),Pc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(kc(e),Ac(e)))}toFutureTense(e){return Ec(this,e).map(e=>(kc(e),e=jc(e)))}toInfinitive(e){return Ec(this,e).map(e=>(kc(e),xc(e)))}toNegative(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ec(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ec(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ec(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=yc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Ic=function(e){return e.match("#Honorific+? #Person+")},Tc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Gc="male",Dc="female",Cc={mr:Gc,mrs:Dc,miss:Dc,madam:Dc,king:Gc,queen:Dc,duke:Gc,duchess:Dc,baron:Gc,baroness:Dc,count:Gc,countess:Dc,prince:Gc,princess:Dc,sire:Gc,dame:Dc,lady:Dc,ayatullah:Gc,congressman:Gc,congresswoman:Dc,"first lady":Dc,mx:null};var Oc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Dc;if(n.has("#MaleName"))return Gc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Cc.hasOwnProperty(e))return Cc[e];if(/^her /.test(e))return Dc;if(/^his /.test(e))return Gc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Gc;if(n&&!t)return Dc}return null};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Vc(this,e).map(Tc)}json(e){return Vc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Tc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Oc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ic(this);return t=Vc(t,e),new People(this.document,t.pointer)}},zc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},$c=function(e){e.prototype.places=function(t){let n=zc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Fc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Sc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Hc=function(e){e.prototype.topics=Sc},Mc={api:function(e){Bc(e),$c(e),Fc(e),Hc(e)}},Lc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Wc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Jc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const qc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Kc=function(e){return e.match("#Negative")},Rc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Uc=function(e){let t=e.clone();t.contractions().expand();const n=Wc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:qc(t,n),negative:Kc(t),phrasal:Rc(n)}};const Qc={tense:"PresentTense"},_c={conditional:!0},Zc={tense:"FutureTense"},Yc={progressive:!0},Xc={tense:"PastTense"},eh={complete:!0,progressive:!1},th={passive:!0},nh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},rh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Qc]],["^wanted to #Infinitive$",[Xc]],["^will want to #Infinitive$",[Zc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Xc]],["^#PresentTense #Gerund$",[Qc]],["^#Infinitive #Gerund$",[Qc]],["^will #Infinitive #Gerund$",[Zc]],["^have #PastTense #Gerund$",[Xc]],["^will have #PastTense #Gerund$",[Xc]]],"simple-present":[["^#PresentTense$",[Qc]],["^#Infinitive$",[Qc]]],"simple-past":[["^#PastTense$",[Xc]]],"simple-future":[["^will #Adverb? #Infinitive",[Zc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Qc,Yc]]],"past-progressive":[["^(was|were) #Gerund$",[Xc,Yc]]],"future-progressive":[["^will be #Gerund$",[Zc,Yc]]],"present-perfect":[["^(has|have) #PastTense$",[Xc,eh]]],"past-perfect":[["^had #PastTense$",[Xc,eh]],["^had #PastTense to #Infinitive",[Xc,eh]]],"future-perfect":[["^will have #PastTense$",[Zc,eh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Xc,Yc]]],"past-perfect-progressive":[["^had been #Gerund$",[Xc,Yc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Zc,Yc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Xc,th]],["^(was|were) being (#PastTense|#Participle)",[Xc,th]],["^(had|have) been (#PastTense|#Participle)",[Xc,th]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Qc,th]],["^(is|are|am) being (#PastTense|#Participle)",[Qc,th]],["^has been (#PastTense|#Participle)",[Qc,th]]],"passive-future":[["will have been (#PastTense|#Participle)",[Zc,th,_c]],["will be being? (#PastTense|#Participle)",[Zc,th,_c]]],"present-conditional":[["would be #PastTense",[Qc,_c]]],"past-conditional":[["would have been #PastTense",[Xc,_c]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Zc]]],"auxiliary-past":[["^did #Infinitive$",[Xc,{plural:!1}]],["^used to #Infinitive$",[Xc,eh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Qc,eh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Xc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let ah=[];Object.keys(rh).map(e=>{rh[e].forEach(t=>{ah.push({name:e,match:t[0],data:nh(t[1])})})});var oh=ah,ih=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),sh(r)&&(n.remove(r),r=n.last()),sh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:lh(t,e)}};const ch=e=>e,hh=(e,t)=>{let n=uh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},dh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=uh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ph=function(e,t){let n=uh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},mh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,mh(e)),r&&e.replace(t.root,r),e},fh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),bh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},vh=function(e){return e&&e.isView?e.text("normal"):""},yh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,mh(e))};var wh=function(e){let t=Uc(e);e=e.clone().toView();const n=ih(e,t);return{root:t.root.text(),preAdverbs:bh(t.adverbs.pre),postAdverbs:bh(t.adverbs.post),auxiliary:vh(t.auxiliary),negative:t.negative.found,prefix:vh(t.prefix),infinitive:yh(t.root),grammar:n}};const kh={tags:!0};var Ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,mh(r)),i&&e.replace(r,i,kh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ah={tags:!0},jh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,mh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=uh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ah),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=jh.simple(e,t),e=jh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ah),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),n(o,e.model).Participle}},xh={infinitive:jh.simple,"simple-present":jh.simple,"simple-past":ch,"simple-future":jh.both,"present-progressive":e=>(e.replace("are","were",Ah),e.replace("(is|are|am)","was",Ah),e),"past-progressive":ch,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":jh.hasHad,"past-perfect":ch,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=fh(e)),e.remove("have"),e),"present-perfect-progressive":jh.hasHad,"past-perfect-progressive":ch,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ah),e),"passive-past":e=>(e.replace("have","had",Ah),e),"passive-present":e=>(e.replace("(is|are)","was",Ah),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ah),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":ch,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ah),e),"auxiliary-past":ch,"auxiliary-present":e=>(e.replace("(do|does)","did",Ah),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ah):(jh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":ch,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ah),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),jh.simple(e,t),fh(e),e)};var Eh=function(e,t,n){return xh.hasOwnProperty(n)?((e=xh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0},Ih=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=dh(e)),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("PresentTense"),e},Th=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("Gerund"),e},Gh={infinitive:Ih,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Ih(e,t);{let t=uh(e).subject;if(hh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Nh)}return e},"simple-past":Ih,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=dh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ih(e,t),e=e.remove("will");return e},"present-progressive":ch,"past-progressive":(e,t)=>{let n=dh(e);return e.replace("(were|was)",n,Nh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ih(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=uh(e).subject;return hh(e)||n.has("i")?((e=gh(e,t)).remove("had"),e):(e.replace("had","has",Nh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":ch,"past-perfect-progressive":e=>e.replace("had","has",Nh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=dh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Nh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":ch,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":ch,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Th(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ph(e);return e.replace(t.auxiliary,n),e}return Th(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":ch,"modal-infinitive":ch,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,mh(r)),a&&(e=e.replace(t.root,a,Nh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return hh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Nh),e.remove("will"),e}};var Dh=function(e,t,n){return Gh.hasOwnProperty(n)?((e=Gh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ch={tags:!0},Oh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,mh(r)),o&&(e=e.replace(r,o,Ch)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Vh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,mh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Ch),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Bh={infinitive:Oh,"simple-present":Oh,"simple-past":Oh,"simple-future":ch,"present-progressive":Vh,"past-progressive":Vh,"future-progressive":ch,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":ch,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":ch,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":ch,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":ch,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":ch,"modal-past":ch,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Oh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var zh=function(e,t,n){return e.has("will")||e.has("going to")?e:Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const $h={tags:!0};var Fh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,mh(a));let s=r(i,e.model).Gerund;return s&&(s=`${dh(e)} ${s}`,e.replace(a,s,$h)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Sh={tags:!0},Hh=function(e,t){let n=ph(e);return e.prepend(n+" not"),e},Mh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Lh=e=>e.has("(is|was|am|are|will|were|be)"),Wh={"simple-present":(e,t)=>!0===Lh(e)?Mh(e):(e=gh(e,t),e=Hh(e)),"simple-past":(e,t)=>!0===Lh(e)?Mh(e):((e=gh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Lh(e)?Mh(e):Hh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Sh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Hh(e)).replace("wants","want",Sh)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Wh.hasOwnProperty(n))return e=Wh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Lh(e)?Mh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const qh=(e,t)=>"number"==typeof t?e.eq(t):e;var Kh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return qh(this,e).map(Uc)}json(e,t){return qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=wh(t),n},[])}subjects(e){return qh(this,e).map(e=>(Uc(e),uh(e).subject))}adverbs(e){return qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return qh(this,e).filter(e=>!0!==uh(e).plural)}isPlural(e){return qh(this,e).filter(e=>!0===uh(e).plural)}isImperative(e){return qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Ph(e,t,n.form)})}toPresentTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Dh(e,t,n.form)})}toPastTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return zh(e,t,n.form)})}toGerund(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Fh(e,t,n.form)})}conjugate(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Ph(e.clone(),t,n.form).text("normal"),PastTense:Eh(e.clone(),t,n.form).text("normal"),PresentTense:Dh(e.clone(),t,n.form).text("normal"),FutureTense:zh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Jh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Lc(this);return t=qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ll),m.plugin(cu),m.plugin(bu),m.plugin(Cu),m.plugin(gc),m.plugin(vc),m.plugin(Nc),m.plugin(Mc),m.plugin(Kh),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1;var r=k;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),P(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const pe=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===pe.test(r[s].normal)&&([l,u]=r[s].normal.split(pe));let c=ve(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](r,s)),c?(c=ye(c,e),Q(n,[i,s],c),ge(n[i],e,s,c.length)):me.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},xe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ee=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ne=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ee(e,this.world));var r;let a=Te(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ee(e,this.world());return De(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Oe(n,t),Object.keys(r).forEach(e=>{r[e]=Oe(r[e],t)}),{ptrs:n,byGroup:r}},Be=e=>"[object Object]"===Object.prototype.toString.call(e),ze=e=>e&&Be(e)&&!0===e.isView,$e=e=>e&&Be(e)&&!0===e.isNet,Fe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Fe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(ze(e))return e.fullPointer.length>0;if($e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(ze(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(ze(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Fe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},He={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},Le=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},We=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Je={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Je.split=Je.splitAfter;var qe=Je;const Ke=Object.assign({},Se,He,qe);Ke.lookBehind=Ke.before,Ke.lookBefore=Ke.before,Ke.lookAhead=Ke.after,Ke.lookAfter=Ke.after,Ke.notIf=Ke.ifNo;var Ue=function(e){Object.assign(e.prototype,Ke)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ze=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{Ze(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Ye(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ze(e)?r.push(e):r=r.concat(e.split(_e))}),r=Ye(r),r};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),at=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===at(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===at(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===at(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===at(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===at(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===at(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===at(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===at(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let r=n.choices.length-1;n.choices[r]=st(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===at(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===at(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===at(e))return e=lt(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===at(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=rt(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&ht.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},mt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Xe(e);return r=r.map(e=>ct(e,t)),r=dt(r,n),r=pt(r,n),r=mt(r),r};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),xt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>kt.test(e.post)||kt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;var Et=xt;let Nt=function(){};Nt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Et[t.method]&&!0===Et[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,r)):t.choices.some(t=>Nt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=Nt;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Gt(e,e.t).length=r-e.t),e.t=r,!0)};const Ct=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Gt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Bt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},$t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||$t(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Gt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Tt(e,a)){if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Bt(a))return null;if(!0!==e.optional)return null}else if(!St(a))return null}else if(!St(a))return null}else if(!St(a))return null}else if(!Vt(a))return null}else if(!Ot(a))return null}else if(!Dt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Ue,methods:{one:{termMethods:Et,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Yt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Xt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let rn=[],an=0;for(;an<64;)rn[an]=0|4294967296*Math.sin(++an%Math.PI);function on(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(an=i=0;an>4]+rn[i]+~~o[an|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},sn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&cn[o]&&(a[o]=cn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn,pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const mn="";var gn={green:e=>""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(gn.blue("\n ──────")),t.forEach(e=>{console.log(gn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=gn.blue(" │ ")+gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return gn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${gn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const yn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},En=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Nn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},In={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:En,splitAll:Nn}}},Tn=function(e,t){let n=e.concat(t),r=En(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>xn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Dn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>xn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Vn={union:function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Vn.and=Vn.union,Vn.intersection=function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.not=function(e){e=Cn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.difference=Vn.not,Vn.complement=function(){let e=this.all(),t=Gn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Tn(e,[t])}),e=On(e,this.document),this.update(e)};var Bn={methods:In,api:function(e){Object.assign(e.prototype,Vn)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var $n=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Fn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Sn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Hn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=$n(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Fn(a,t.hooks);return o=Sn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Hn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Wn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},qn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Wn.test(t))!function(e,t,n,r){let a=t.split(Wn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),qn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,r))};var Un=Kn,Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),er=e=>(e=e||"").trim(),tr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||_n.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Zn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Qn),t);var t},nr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Yn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},rr=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ar={text:nr,txt:nr,array:rr,flat:rr},or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(nr(e,!0)),null):ar.hasOwnProperty(t)?ar[t](e):e},ir=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=er(e),!sr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(er(e),t)),this;e=er(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=er(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ir(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ir(this.json),or(this.json,e)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(e){let t=tr(e);return new g$1(t)};lr.prototype.plugin=function(e){e(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(e){if(ur.hasOwnProperty(e.id))return ur[e.id];if(ur.hasOwnProperty(e.is))return ur[e.is];let t=e._cache.parents.find(e=>ur[e]);return ur[t]};var hr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:cr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const dr=function(e){return e?"string"==typeof e?[e]:e:[]};var pr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=dr(e[t].children),e[t].not=dr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},mr={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=pr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return lr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return hr(n)}}};const gr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),gr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return gr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},br=function(e){Object.assign(e.prototype,fr)},vr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const yr=new Set(["Auxiliary","Possessive"]);var wr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(yr.has(e)||!t.hasOwnProperty(n))return 1;if(yr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:mr,api:br,lib:vr};const Pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Ar=function(e){let t=[],n=e.split(kr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Mr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Lr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Kr=/^'[0-9]{2}/;var Ur=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Mr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!qr.test(e)?"'"===n&&Kr.test(e)?(n="",t):"":(n="",t)))).replace(Lr,a=>(r=a,Wr.test(a)&&/[sn]['’]$/.test(t)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Rr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Qr=/([A-Z]\.)+[A-Z]?,?$/,_r=/^[A-Z]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(e){return function(e){return!0===Qr.test(e)||!0===Yr.test(e)||!0===_r.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ea=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Rr(r),r=n(r,t),r=Xr(r),e.normal=r},ta={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Dr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Sr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=zr(n),n=Vr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ur(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ea(e,t)}),n})}}}},na={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ra={},aa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ra[t]=!0,aa[t]="Abbreviation",void 0!==e[1]&&(aa[t]=[aa[t],e[1]])})});var oa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ia={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},sa={};Object.keys(ia).forEach((function(e){ia[e].split("").forEach((function(t){sa[t]=e}))}));const la=/\//,ua=/[a-z]\.[a-z]/i,ca=/[0-9]/;var ha=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),la.test(n)&&!ua.test(n)&&!ca.test(n)){let t=n.split(la);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const da=/^\p{Letter}+-\p{Letter}+$/u;var pa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),da.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ma=function(e){let t=0,n=0,r=e.document;for(let e=0;ega(e,ha),machine:e=>ga(e,pa),normal:e=>ga(e,ea),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ya={safe:!0,min:3};var wa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ba},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ya,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(jn),m.extend(Jt),m.extend(Bn),m.extend(wr),m.plugin(we),m.extend(fa),m.plugin(f),m.extend(Ce),m.extend(wa),m.extend(xe),m.extend(Ln);var Pa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ka={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Aa=36,ja="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xa=ja.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==xa[e])return xa[e];let t=0,n=1,r=Aa,a=1;for(;n=0;n--,a*=Aa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Na=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ta(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Va.test(e)?Object.keys(t).forEach(t=>{if(za[t]=e,"Noun|Verb"===e){let e=Oa(t,$a);za[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ba[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ba[e]="Emoticon"),delete Ba[""],delete Ba.null,delete Ba[" "];const Fa="Adjective";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa},afterTags:{Adjective:Fa},beforeWords:{seem:Fa,seemed:Fa,seems:Fa,feel:Fa,feels:Fa,felt:Fa,appear:Fa,appears:Fa,appeared:Fa,also:Fa,over:Fa,under:Fa,too:Fa,it:Fa,but:Fa,still:Fa,really:Fa,quite:Fa,well:Fa,very:Fa,deeply:Fa,profoundly:Fa,extremely:Fa,so:Fa,badly:Fa,mostly:Fa,totally:Fa,awfully:Fa,rather:Fa,nothing:Fa,something:Fa,anything:Fa},afterWords:{too:Fa,also:Fa,or:Fa}};const Ha="Gerund";var Ma={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha}},La={beforeTags:Object.assign({},Sa.beforeTags,Ma.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Sa.afterTags,Ma.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Sa.beforeWords,Ma.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Sa.afterWords,Ma.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wa="Singular";var Ja={beforeTags:{Determiner:Wa,Possessive:Wa,Acronym:Wa,Noun:Wa,Adjective:Wa,PresentTense:Wa,Gerund:Wa,PastTense:Wa,Infinitive:Wa,Date:Wa},afterTags:{Value:Wa,Modal:Wa,Copula:Wa,PresentTense:Wa,PastTense:Wa,Demonym:Wa},beforeWords:{the:Wa,with:Wa,without:Wa,of:Wa,for:Wa,any:Wa,all:Wa,on:Wa,cut:Wa,cuts:Wa,save:Wa,saved:Wa,saves:Wa,make:Wa,makes:Wa,made:Wa,minus:Wa,plus:Wa,than:Wa,another:Wa,versus:Wa,neither:Wa,favorite:Wa,best:Wa,daily:Wa,weekly:Wa,linear:Wa,binary:Wa,mobile:Wa,lexical:Wa,technical:Wa,computer:Wa,scientific:Wa,formal:Wa},afterWords:{of:Wa,system:Wa,aid:Wa,method:Wa,utility:Wa,tool:Wa,reform:Wa,therapy:Wa,philosophy:Wa,room:Wa,authority:Wa,says:Wa,said:Wa,wants:Wa,wanted:Wa}};const qa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ka={beforeTags:Object.assign({},Sa.beforeTags,Ja.beforeTags,qa.beforeTags),afterTags:Object.assign({},Sa.afterTags,Ja.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Ja.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Ja.afterWords)};const Ua={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ra={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Qa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},_a={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Za={beforeTags:Object.assign({},Sa.beforeTags,Ua),afterTags:Object.assign({},Sa.afterTags,Ra),beforeWords:Object.assign({},Sa.beforeWords,Qa),afterWords:Object.assign({},Sa.afterWords,_a)};const Ya="Infinitive";var Xa={beforeTags:{Modal:Ya,Adverb:Ya,Negative:Ya,Plural:Ya},afterTags:{Determiner:Ya,Adverb:Ya,Possessive:Ya,Preposition:Ya},beforeWords:{i:Ya,we:Ya,you:Ya,they:Ya,to:Ya,please:Ya,will:Ya,have:Ya,had:Ya,would:Ya,could:Ya,should:Ya,do:Ya,did:Ya,does:Ya,can:Ya,must:Ya,us:Ya,me:Ya,he:Ya,she:Ya,it:Ya,being:Ya},afterWords:{the:Ya,me:Ya,you:Ya,him:Ya,her:Ya,them:Ya,it:Ya,a:Ya,an:Ya,up:Ya,down:Ya,by:Ya,out:Ya,off:Ya,under:Ya,when:Ya,all:Ya,to:Ya,because:Ya,although:Ya,before:Ya,how:Ya,otherwise:Ya,together:Ya,though:Ya,yet:Ya}};const eo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var to={beforeTags:Object.assign({},Sa.beforeTags,Xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Sa.afterTags,Xa.afterTags,eo.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Xa.afterWords,{to:void 0})};const no={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ro={},ao={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var io={beforeTags:Object.assign({},Ma.beforeTags,Ja.beforeTags,no),afterTags:Object.assign({},Ma.afterTags,Ja.afterTags,ro),beforeWords:Object.assign({},Ma.beforeWords,Ja.beforeWords,ao),afterWords:Object.assign({},Ma.afterWords,Ja.afterWords,oo)},so={beforeTags:Object.assign({},Xa.beforeTags,Ja.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xa.afterTags,Ja.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xa.beforeWords,Ja.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xa.afterWords,Ja.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const lo="Person";var uo={beforeTags:{Honorific:lo,Person:lo,Preposition:lo},afterTags:{Person:lo,ProperNoun:lo,Verb:lo},ownTags:{ProperNoun:lo},beforeWords:{hi:lo,hey:lo,yo:lo,dear:lo,hello:lo},afterWords:{said:lo,says:lo,told:lo,tells:lo,feels:lo,felt:lo,seems:lo,thinks:lo,thought:lo,spends:lo,spendt:lo,plays:lo,played:lo,sing:lo,sang:lo,learn:lo,learned:lo,wants:lo,wanted:lo}};const co="Month",ho={beforeTags:{Date:co,Value:co},afterTags:{Date:co,Value:co},beforeWords:{by:co,in:co,on:co,during:co,after:co,before:co,between:co,until:co,til:co,sometime:co,of:co,this:co,next:co,last:co,previous:co,following:co},afterWords:{sometime:co,in:co,of:co,until:co,the:co}};var po={beforeTags:Object.assign({},uo.beforeTags,ho.beforeTags),afterTags:Object.assign({},uo.afterTags,ho.afterTags),beforeWords:Object.assign({},uo.beforeWords,ho.beforeWords),afterWords:Object.assign({},uo.afterWords,ho.afterWords)};const mo={Place:"Place"},go={Place:"Place",Abbreviation:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vo="Unit";const yo={"Adj|Gerund":La,"Adj|Noun":Ka,"Adj|Past":Za,"Adj|Present":to,"Noun|Verb":so,"Noun|Gerund":io,"Person|Noun":{beforeTags:Object.assign({},Ja.beforeTags,uo.beforeTags),afterTags:Object.assign({},Ja.afterTags,uo.afterTags),beforeWords:Object.assign({},Ja.beforeWords,uo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ja.afterWords,uo.afterWords)},"Person|Date":po,"Person|Verb":{beforeTags:Object.assign({},uo.beforeTags,Xa.beforeTags),afterTags:Object.assign({},uo.afterTags,Xa.afterTags),beforeWords:Object.assign({},uo.beforeWords,Xa.beforeWords),afterWords:Object.assign({},uo.afterWords,Xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},mo,uo.beforeTags),afterTags:Object.assign({},go,uo.afterTags),beforeWords:Object.assign({},fo,uo.beforeWords),afterWords:Object.assign({},bo,uo.afterWords)},"Unit|Noun":{beforeTags:{Value:vo},afterTags:{},beforeWords:{per:vo,every:vo,each:vo,square:vo,cubic:vo,sq:vo,metric:vo},afterWords:{per:vo,squared:vo,cubed:vo,long:vo}}},wo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};yo["Plural|Verb"]={beforeWords:wo(yo["Noun|Verb"].beforeWords,{}),afterWords:wo(yo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wo(yo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wo(yo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Po=yo;const ko="Adjective",Ao="Infinitive",jo="PresentTense",xo="Singular",Eo="PastTense",No="Adverb",Io="Plural",To="Actor",Go="Verb",Do="Noun",Co="LastName",Oo="Modal",Vo="Participle";var Bo=[null,null,{ea:xo,ia:Do,ic:ko,ly:No,"'n":Go,"'t":Go},{oed:Eo,ued:Eo,xed:Eo," so":No,"'ll":Oo,"'re":"Copula",azy:ko,eer:Do,end:Go,ped:Eo,ffy:ko,ify:Ao,ing:"Gerund",ize:Ao,ibe:Ao,lar:ko,mum:ko,nes:jo,nny:ko,ous:ko,que:ko,rol:xo,sis:xo,ogy:xo,oid:xo,ian:xo,zes:jo,eld:Eo,ken:Vo,ven:Vo,ten:Vo,ect:Ao,ict:Ao,ign:Ao,ful:ko,bal:ko},{amed:Eo,aped:Eo,ched:Eo,lked:Eo,rked:Eo,reed:Eo,nded:Eo,mned:ko,cted:Eo,dged:Eo,ield:xo,akis:Co,cede:Ao,chuk:Co,czyk:Co,ects:jo,ends:Go,enko:Co,ette:xo,wner:xo,fies:jo,fore:No,gate:Ao,gone:ko,ices:Io,ints:Io,ruct:Ao,ines:Io,ions:Io,less:ko,llen:ko,made:ko,nsen:Co,oses:jo,ould:Oo,some:ko,sson:Co,tion:xo,tage:Do,ique:xo,tive:ko,tors:Do,vice:xo,lier:xo,fier:xo,wned:Eo,gent:xo,tist:xo,pist:xo,rist:xo,mist:xo,yist:xo,vist:xo,lite:xo,site:xo,rite:xo,mite:xo,bite:xo,mate:xo,date:xo,ndal:xo,vent:xo,uist:xo,gist:xo,note:xo,cide:xo,wide:ko,vide:Ao,ract:Ao,duce:Ao,pose:Ao,eive:Ao,lyze:Ao,lyse:Ao,iant:ko,nary:ko},{elist:xo,holic:xo,phite:xo,tized:Eo,urned:Eo,eased:Eo,ances:Io,bound:ko,ettes:Io,fully:No,ishes:jo,ities:Io,marek:Co,nssen:Co,ology:Do,osome:xo,tment:xo,ports:Io,rough:ko,tches:jo,tieth:"Ordinal",tures:Io,wards:No,where:No,archy:Do,pathy:Do,opoly:Do,embly:Do,phate:Do,ndent:xo,scent:xo,onist:xo,anist:xo,alist:xo,olist:xo,icist:xo,ounce:Ao,iable:ko,borne:ko,gnant:ko,inant:ko,igent:ko,atory:ko,rient:xo,dient:xo},{auskas:Co,parent:xo,cedent:xo,ionary:xo,cklist:xo,keeper:To,logist:To,teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const zo="Adjective",$o="Noun",Fo="Verb";var So=[null,null,{},{neo:$o,bio:$o,"de-":Fo,"re-":Fo,"un-":Fo},{anti:$o,auto:$o,faux:zo,hexa:$o,kilo:$o,mono:$o,nano:$o,octa:$o,poly:$o,semi:zo,tele:$o,"pro-":zo,"mis-":Fo,"dis-":Fo,"pre-":zo},{anglo:$o,centi:$o,ethno:$o,ferro:$o,grand:$o,hepta:$o,hydro:$o,intro:$o,macro:$o,micro:$o,milli:$o,nitro:$o,penta:$o,quasi:zo,radio:$o,tetra:$o,"omni-":zo,"post-":zo},{pseudo:zo,"extra-":zo,"hyper-":zo,"inter-":zo,"intra-":zo,"deca-":zo},{electro:$o}];const Ho="Adjective",Mo="Infinitive",Lo="PresentTense",Wo="Singular",Jo="PastTense",qo="Adverb",Ko="Expression",Uo="Actor",Ro="Verb",Qo="Noun",_o="LastName";var Zo={a:[[/.[aeiou]na$/,Qo,"tuna"],[/.[oau][wvl]ska$/,_o],[/.[^aeiou]ica$/,Wo,"harmonica"],[/^([hyj]a+)+$/,Ko,"haha"]],c:[[/.[^aeiou]ic$/,Ho]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Jo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Jo,"rammed"],[/.[aeiou][sg]hed$/,Jo,"gushed"],[/.[aeiou]red$/,Jo,"hired"],[/.[aeiou]r?ried$/,Jo,"hurried"],[/[^aeiou]ard$/,Wo,"steward"],[/[aeiou][^aeiou]id$/,Ho,""],[/.[vrl]id$/,Ho,"livid"],[/..led$/,Jo,"hurled"],[/.[iao]sed$/,Jo,""],[/[aeiou]n?[cs]ed$/,Jo,""],[/[aeiou][rl]?[mnf]ed$/,Jo,""],[/[aeiou][ns]?c?ked$/,Jo,"bunked"],[/[aeiou]gned$/,Jo],[/[aeiou][nl]?ged$/,Jo],[/.[tdbwxyz]ed$/,Jo],[/[^aeiou][aeiou][tvx]ed$/,Jo],[/.[cdflmnprstv]ied$/,Jo,"emptied"]],e:[[/.[lnr]ize$/,Mo,"antagonize"],[/.[^aeiou]ise$/,Mo,"antagonise"],[/.[aeiou]te$/,Mo,"bite"],[/.[^aeiou][ai]ble$/,Ho,"fixable"],[/.[^aeiou]eable$/,Ho,"maleable"],[/.[ts]ive$/,Ho,"festive"],[/[a-z]-like$/,Ho,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ho,"cornish"],[/.v[iy]ch$/,_o,"..ovich"],[/^ug?h+$/,Ko,"ughh"],[/^uh[ -]?oh$/,Ko,"uhoh"],[/[a-z]-ish$/,Ho,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,_o,"polish-male"]],k:[[/^(k){2}$/,Ko,"kkkk"]],l:[[/.[gl]ial$/,Ho,"familial"],[/.[^aeiou]ful$/,Ho,"fitful"],[/.[nrtumcd]al$/,Ho,"natal"],[/.[^aeiou][ei]al$/,Ho,"familial"]],m:[[/.[^aeiou]ium$/,Wo,"magnesium"],[/[^aeiou]ism$/,Wo,"schism"],[/^[hu]m+$/,Ko,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ho,"republican"],[/[^aeiou]ician$/,Uo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ko,"noooo"],[/^(yo)+$/,Ko,"yoo"],[/^wo{2,}[pt]?$/,Ko,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Wo],[/[^i]fer$/,Mo],[/.[^aeiou][ao]pher$/,Uo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ho],[/[aeiou].*ist$/,Ho],[/^[a-z]et$/,Ro]],s:[[/.[^aeiou]ises$/,Lo],[/.[rln]ates$/,Lo],[/.[^z]ens$/,Ro],[/.[lstrn]us$/,Wo],[/.[aeiou]sks$/,Lo],[/.[aeiou]kes$/,Lo],[/[aeiou][^aeiou]is$/,Wo],[/[a-z]'s$/,Qo],[/^yes+$/,Ko]],v:[[/.[^aeiou][ai][kln]ov$/,_o]],y:[[/.[cts]hy$/,Ho],[/.[st]ty$/,Ho],[/.[tnl]ary$/,Ho],[/.[oe]ry$/,Wo],[/[rdntkbhs]ly$/,qo],[/.(gg|bb|zz)ly$/,Ho],[/...lly$/,qo],[/.[gk]y$/,Ho],[/[bszmp]{2}y$/,Ho],[/.[ai]my$/,Ho],[/[ea]{2}zy$/,Ho],[/.[^aeiou]ity$/,Wo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ri={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ai={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ii);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ii,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},di=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const pi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),mi=hi(ai),gi=hi(ni),fi=hi(ri),bi=di(pi),vi=di(mi),yi=di(gi),wi=di(fi),Pi=hi(ti),ki=hi(oi);var Ai={fromPast:pi,fromPresent:mi,fromGerund:gi,fromParticiple:fi,toPast:bi,toPresent:vi,toGerund:yi,toParticiple:wi,toComparative:Pi,toSuperlative:ki,fromComparative:di(Pi),fromSuperlative:di(ki)},ji=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),xi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Ei=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ni[t].forEach(n=>e[n]=t),e),{});var Ii=Ni,Ti=function(e){let t=e.substring(e.length-3);if(!0===Ii.hasOwnProperty(t))return Ii[t];let n=e.substring(e.length-2);return!0===Ii.hasOwnProperty(n)?Ii[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Gi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ti(e)),Gi.hasOwnProperty(e))c=Gi[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,r);else if("PresentTense"===n)c=si(l,a);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ci=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,r),Gerund:si(i,a),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Oi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Vi="ically",Bi=new Set(["analyt"+Vi,"chem"+Vi,"class"+Vi,"clin"+Vi,"crit"+Vi,"ecolog"+Vi,"electr"+Vi,"empir"+Vi,"frant"+Vi,"grammat"+Vi,"ident"+Vi,"ideolog"+Vi,"log"+Vi,"mag"+Vi,"mathemat"+Vi,"mechan"+Vi,"med"+Vi,"method"+Vi,"method"+Vi,"mus"+Vi,"phys"+Vi,"phys"+Vi,"polit"+Vi,"pract"+Vi,"rad"+Vi,"satir"+Vi,"statist"+Vi,"techn"+Vi,"technolog"+Vi,"theoret"+Vi,"typ"+Vi,"vert"+Vi,"whims"+Vi]),zi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],$i=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Fi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?Bi.has(e)?e.replace(/ically/,"ical"):$i.has(e)?null:Fi.hasOwnProperty(e)?Fi[e]:Oi(e,zi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Mi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Li=function(e){if(Mi.hasOwnProperty(e))return Mi[e];let t=Oi(e,Hi);return t||e+"ly"};const Wi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ji={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},qi=new Set(["terrible","annoying"]),Ki=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Qi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Oa,nounToSingular:Ei,verbToInfinitive:Di,getTense:Ti,verbConjugate:Ci,adjToSuperlative:Ki,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Li,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(qi.has(e))return null;let t=Oi(e,Wi);return t||e+"ness"}}}},_i=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Zi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(r,"Infinitive","Verb"),Object.assign(s,l),l=Zi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zi(o,"Adjective","Superlative"),Object.assign(s,l),l=Zi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:Qi};let{lex:r,_multi:a}=Qi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ns=function(e,t,n){let r=Ci(e,Xi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(a,r,!1),"Adj|Present"===o&&(ns(a,r,!0),function(e,t,n){let r=Ki(e,n);t[r]=t[r]||"Superlative";let a=Ui(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(a,Xi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(a,Xi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let as={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:Pa,models:Ai,suffixPatterns:Bo,prefixPatterns:So,endsWith:Zo,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:za,clues:Po,uncountable:{},orgWords:ji}};as=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=rs(e.two.switches,e),e=Yi(e),e=_i(e)}(as);var os=as;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(is.test(a.normal)){let e=a.normal.replace(is,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ls=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const ps=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ms=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ti(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(r)};const gs=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,bs=["Date","Month","WeekDay","Unit"],vs=/^[IVXLCDM]{2,}$/,ys=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Ps=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===gs.test(o)&&!1===fs.test(o)?bs.find(e=>r.tags.has(e))?null:(ms(e,t,n),r.tags.has("Noun")||r.tags.clear(),ls(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&vs.test(o)&&ys.test(o)&&!ws[r.normal]?(ls(r,"RomanNumeral","2-xvii"),!0):null};const ks=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var As=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ks(r.normal,n.two.suffixPatterns);if(null!==e)return ls(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ks(r.implicit,n.two.suffixPatterns),null!==e))return ls(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const js=/['‘’‛‵′`´]/,xs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ls(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Is=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ts=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Is.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ds=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ts(a)||Ts(o))return ls(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gs(a)||Gs(o))return ls(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return ls(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Vs=/^[A-Z-]+$/,Bs=/([A-Z]\.)+[A-Z]?,?$/,zs=/[A-Z]{2,}('s|,)?$/,$s=/([a-z]\.)+[a-z]\.?$/,Fs={I:!0,A:!0};var Ss=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Vs.test(n)||n.length>5||Fs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Bs.test(n)&&!0!==$s.test(n)&&!0!==Os.test(n)&&!0!==zs.test(n))}(r,n)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Fs.hasOwnProperty(r.text)&&Os.test(r.text)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ls(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Vs.test(r.text)&&r.text.length<=6?(ls(r,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ms=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ls=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],a),l=l||Hs(e[t+1],o),l=l||Ms(e[t-1],r),l=l||Ms(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ms(e,t,n),e[t].confidence=.2,!0}return null};const Ws=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Js=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ws(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ws(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},qs=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ms(e,t,n),e[t].confidence=.1)};const Ks=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>Ks(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t&&Ks(e,t)};const Qs="undefined"!=typeof process&&process.env?process.env:self.env||{},_s=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Qs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ys=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Qs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Es,checkCase:Ps,checkPrefix:Ns,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Ls,orgWords:Js,nounFallback:qs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(_s.test(l)&&!o[l]&&(l=l.replace(_s,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Zs(e[t+1],n.afterWords);return o=o||Zs(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,a),o=o||Ys(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Rs[o]&&(u=Rs[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Qs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},al={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vl=/'/;var yl=function(e,t){let n=e[t].normal.split(vl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},kl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(Pl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===kl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const jl=/'/,xl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},El={d:(e,t)=>yl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bl(e,t)},Nl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Il={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===jl.test(r[o].normal)&&([,i]=r[o].normal.split(jl));let s=null;El.hasOwnProperty(i)&&(s=El[i](r,o,t)),s&&(s=Nl(s,e),gl(n,[a,o],s),xl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ml.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=pl},hooks:["contractionTwo"]};const Tl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Gl=["i","we","they"];let Dl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Tl+" #Person",tag:"Person",reason:"randy-smith"},{match:Tl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Tl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Cl=Cl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Dl}},hooks:["postTagger"]},Vl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Bl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Vl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},zl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},$l=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?zl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Fl={api:function(e){e.prototype.swap=$l}};m.plugin(cl),m.plugin(Il),m.plugin(Ol),m.plugin(Bl),m.plugin(Fl);var Sl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Hl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ml={this:"Noun",then:"Pivot"};var Ll=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},_l={compute:{chunks:function(e){const{document:t,world:n}=e;Ll(t),Wl(t),Kl(e,t,n),Rl(t),Ql(t)}},api:function(e){e.prototype.chunks=Hl,e.prototype.clauses=Sl},hooks:["chunks"]};const Zl=/'s$/;var Yl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Xl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Xl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const ru={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},au=RegExp("("+Object.keys(ru).join("|")+")"),ou=RegExp("("+Object.values(ru).join("|")+")"),iu=function(e,t){const n=e[t].pre.match(au)[0]||"";if(!n||!ru[n])return null;const r=ru[n];for(;t{e[0].pre=e[0].pre.replace(au,"");let t=e[e.length-1];t.post=t.post.replace(ou,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const lu=/\./g;var uu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},cu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const hu=(e,t)=>"number"==typeof t?e.eq(t):e,du=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var pu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=du(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=hu(t,e),new Adjectives(t.document,t.pointer)}};const mu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},gu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let fu=[["emojis","emoji"],["atmentions","atMentions"]];var bu=function(e){gu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=mu,fu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},vu={api:function(e){bu(e),Yl(e),nu(e),su(e),pu(e),cu(e),uu(e)}};const yu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var wu={case:e=>{yu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;yu(e,e=>e.text=n(e.text,t))},whitespace:e=>{yu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{yu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),ku="unicode|punctuation|whitespace|acronyms",Au="|case|contractions|parentheses|quotations|emoji|honorifics",ju={light:Pu(ku),medium:Pu(ku+Au),heavy:Pu(ku+Au+"|possessives|adverbs|nouns|verbs")};var xu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ju[e]),Object.keys(e).forEach(t=>{wu.hasOwnProperty(t)&&wu[t](this,e[t])}),this}}},Eu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Nu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Iu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Gu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Tu(e,t),isSubordinate:Iu(e),root:t}};const Du=e=>e.text(),Cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Ou=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Vu=function(e){let t=Gu(e);return{root:Du(t.root),number:Ou(t.number),determiner:Du(t.determiner),adjectives:Cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Bu={tags:!0};var zu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Bu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Bu),e};const $u={tags:!0};var Fu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,$u).tag("Singular","toPlural"),e};const Su=(e,t)=>"number"==typeof t?e.eq(t):e;var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Su(this,e).map(Gu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Vu(t)),n},[])}isPlural(e){let t=this.filter(e=>Gu(e).isPlural);return Su(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Gu(e).adjectives;n.found&&(t=t.concat(n))}),Su(t,e)}toPlural(e){return Su(this,e).map(e=>zu(e,Gu(e)))}toSingular(e){return Su(this,e).map(e=>{let t=Gu(e);return Fu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Eu(this);return t=Su(t,e),new Nouns(this.document,t.pointer)}}},Mu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Lu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Wu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Wu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Wu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},qu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Uu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ru={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Qu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var _u=function(e){if(!0===Ru.hasOwnProperty(e))return Ru[e];if("a"===e||"an"===e)return 1;const t=Lu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Yu(n),r=Yu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Yu(n);let a=r.text("reduced");return Zu.test(a)&&(a=a.replace(Zu,""),r=r.replaceWith(a)),r=Xu.hasOwnProperty(a)?Xu[a]:Yu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Yu(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},tc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const nc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],rc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ac=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],oc=function(e){let t=[];if(e>100)return t;for(let n=0;n=nc[n][1]&&(e-=nc[n][1],t.push(nc[n][0]));return rc[e]&&t.push(rc[e]),t};var ic=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=tc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ac.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(oc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=tc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},sc=function(e){return e.numerator&&e.denominator?`${ic({num:e.numerator})} out of ${ic({num:e.denominator})}`:""};const lc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var uc=e=>{let t=ic(e).split(" "),n=t[t.length-1];return lc.hasOwnProperty(n)?t[t.length-1]=lc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},cc=function(e){if(!e.numerator||!e.denominator)return"";let t=ic({num:e.numerator}),n=uc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return hc(this,e).map(ec)}get(e){return hc(this,e).map(ec)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(t);return n.fraction=r,n},[])}toDecimal(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return hc(this,e).forEach(e=>{let t=ec(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=cc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=sc(t);e.replaceWith(n)}),this}toPercentage(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Mu(this);return t=hc(t,e),new Fractions(this.document,t.pointer)}};const pc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var mc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+pc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+pc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+pc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+pc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${pc})`),r=e.has("("+pc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+pc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+pc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},gc=function(e){if("string"==typeof e)return{num:_u(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=ec(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=_u(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},fc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=tc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const bc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},vc={"%":"percent","°":"degrees"};var yc=function(e){let t={suffix:"",prefix:e.prefix};return bc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+bc[e.prefix],t.prefix=""),vc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+vc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},wc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=yc(e);return t+uc(e)+n}if("Ordinal"===t)return e.prefix+fc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=yc(e);return t+ic(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e;var kc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Pc(this,e).map(gc)}get(e){return Pc(this,e).map(gc).map(e=>e.num)}json(e){return Pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=gc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=gc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=wc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=gc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=wc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>gc(t).num===e)}greaterThan(e){return this.filter(t=>gc(t).num>e)}lessThan(e){return this.filter(t=>gc(t).num{let r=gc(n).num;return r>e&&r{let n=gc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=gc(e).num);let t=this.map(t=>{let n=gc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=mc(this);return t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Ac={api:function(e){dc(e),kc(e)}};const jc={people:!0,emails:!0,phoneNumbers:!0,places:!0},xc=function(e={}){return!1!==(e=Object.assign({},jc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Ec={api:function(e){e.prototype.redact=xc}},Nc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Ic=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Tc=function(e){let t=e.clauses(),n=Ic(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Gc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Cc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},Oc=function(e){return e.verbs().toInfinitive(),e};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Tc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Vc(this,e).map(e=>(Tc(e),Gc(e)))}toPresentTense(e){return Vc(this,e).map(e=>(Tc(e),Dc(e)))}toFutureTense(e){return Vc(this,e).map(e=>(Tc(e),e=Cc(e)))}toInfinitive(e){return Vc(this,e).map(e=>(Tc(e),Oc(e)))}toNegative(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Vc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Vc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Vc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Nc(this);return Vc(t,e)}};Object.assign(e.prototype,t)}},zc=function(e){return e.match("#Honorific+? #Person+")},$c=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Fc="male",Sc="female",Hc={mr:Fc,mrs:Sc,miss:Sc,madam:Sc,king:Fc,queen:Sc,duke:Fc,duchess:Sc,baron:Fc,baroness:Sc,count:Fc,countess:Sc,prince:Fc,princess:Sc,sire:Fc,dame:Sc,lady:Sc,ayatullah:Fc,congressman:Fc,congresswoman:Sc,"first lady":Sc,mx:null};var Mc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Sc;if(n.has("#MaleName"))return Fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Hc.hasOwnProperty(e))return Hc[e];if(/^her /.test(e))return Sc;if(/^his /.test(e))return Fc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Fc;if(n&&!t)return Sc}return null};const Lc=(e,t)=>"number"==typeof t?e.eq(t):e;var Wc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Lc(this,e).map($c)}json(e){return Lc(this,e).map(t=>{let n=t.toView().json(e)[0],r=$c(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Mc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=zc(this);return t=Lc(t,e),new People(this.document,t.pointer)}},Jc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},qc=function(e){e.prototype.places=function(t){let n=Jc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Kc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Uc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Rc=function(e){e.prototype.topics=Uc},Qc={api:function(e){Wc(e),qc(e),Kc(e),Rc(e)}},_c=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Zc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Yc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Xc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},eh=function(e){return e.match("#Negative")},th=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var nh=function(e){let t=e.clone();t.contractions().expand();const n=Zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Yc(t,n),auxiliary:Xc(t,n),negative:eh(t),phrasal:th(n)}};const rh={tense:"PresentTense"},ah={conditional:!0},oh={tense:"FutureTense"},ih={progressive:!0},sh={tense:"PastTense"},lh={complete:!0,progressive:!1},uh={passive:!0},ch=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},hh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[rh]],["^wanted to #Infinitive$",[sh]],["^will want to #Infinitive$",[oh]]],"gerund-phrase":[["^#PastTense #Gerund$",[sh]],["^#PresentTense #Gerund$",[rh]],["^#Infinitive #Gerund$",[rh]],["^will #Infinitive #Gerund$",[oh]],["^have #PastTense #Gerund$",[sh]],["^will have #PastTense #Gerund$",[sh]]],"simple-present":[["^#PresentTense$",[rh]],["^#Infinitive$",[rh]]],"simple-past":[["^#PastTense$",[sh]]],"simple-future":[["^will #Adverb? #Infinitive",[oh]]],"present-progressive":[["^(is|are|am) #Gerund$",[rh,ih]]],"past-progressive":[["^(was|were) #Gerund$",[sh,ih]]],"future-progressive":[["^will be #Gerund$",[oh,ih]]],"present-perfect":[["^(has|have) #PastTense$",[sh,lh]]],"past-perfect":[["^had #PastTense$",[sh,lh]],["^had #PastTense to #Infinitive",[sh,lh]]],"future-perfect":[["^will have #PastTense$",[oh,lh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[sh,ih]]],"past-perfect-progressive":[["^had been #Gerund$",[sh,ih]]],"future-perfect-progressive":[["^will have been #Gerund$",[oh,ih]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[sh,uh]],["^(was|were) being (#PastTense|#Participle)",[sh,uh]],["^(had|have) been (#PastTense|#Participle)",[sh,uh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[rh,uh]],["^(is|are|am) being (#PastTense|#Participle)",[rh,uh]],["^has been (#PastTense|#Participle)",[rh,uh]]],"passive-future":[["will have been (#PastTense|#Participle)",[oh,uh,ah]],["will be being? (#PastTense|#Participle)",[oh,uh,ah]]],"present-conditional":[["would be #PastTense",[rh,ah]]],"past-conditional":[["would have been #PastTense",[sh,ah]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[oh]]],"auxiliary-past":[["^did #Infinitive$",[sh,{plural:!1}]],["^used to #Infinitive$",[sh,lh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[rh,lh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[sh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let dh=[];Object.keys(hh).map(e=>{hh[e].forEach(t=>{dh.push({name:e,match:t[0],data:ch(t[1])})})});var ph=dh,mh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),gh(r)&&(n.remove(r),r=n.last()),gh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:fh(t,e)}};const vh=e=>e,yh=(e,t)=>{let n=bh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},wh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=bh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Ph=function(e,t){let n=bh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},kh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,kh(e)),r&&e.replace(t.root,r),e},jh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),xh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Eh=function(e){return e&&e.isView?e.text("normal"):""},Nh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,kh(e))};var Ih=function(e){let t=nh(e);e=e.clone().toView();const n=mh(e,t);return{root:t.root.text(),preAdverbs:xh(t.adverbs.pre),postAdverbs:xh(t.adverbs.post),auxiliary:Eh(t.auxiliary),negative:t.negative.found,prefix:Eh(t.prefix),infinitive:Nh(t.root),grammar:n}};const Th={tags:!0};var Gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,kh(r)),i&&e.replace(r,i,Th).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Dh={tags:!0},Ch={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,kh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=bh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ch.simple(e,t),e=Ch.noAux(e,t))},hasHad:e=>(e.replace("has","had",Dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),n(o,e.model).Participle}},Oh={infinitive:Ch.simple,"simple-present":Ch.simple,"simple-past":vh,"simple-future":Ch.both,"present-progressive":e=>(e.replace("are","were",Dh),e.replace("(is|are|am)","was",Dh),e),"past-progressive":vh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ch.hasHad,"past-perfect":vh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=jh(e)),e.remove("have"),e),"present-perfect-progressive":Ch.hasHad,"past-perfect-progressive":vh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Dh),e),"passive-past":e=>(e.replace("have","had",Dh),e),"passive-present":e=>(e.replace("(is|are)","was",Dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":vh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Dh),e),"auxiliary-past":vh,"auxiliary-present":e=>(e.replace("(do|does)","did",Dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Dh):(Ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":vh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch.simple(e,t),jh(e),e)};var Vh=function(e,t,n){return Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Bh={tags:!0},zh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=wh(e)),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("PresentTense"),e},$h=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("Gerund"),e},Fh={infinitive:zh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return zh(e,t);{let t=bh(e).subject;if(yh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Bh)}return e},"simple-past":zh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=wh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else zh(e,t),e=e.remove("will");return e},"present-progressive":vh,"past-progressive":(e,t)=>{let n=wh(e);return e.replace("(were|was)",n,Bh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(zh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=bh(e).subject;return yh(e)||n.has("i")?((e=Ah(e,t)).remove("had"),e):(e.replace("had","has",Bh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":vh,"past-perfect-progressive":e=>e.replace("had","has",Bh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=wh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Bh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":vh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":vh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>($h(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Ph(e);return e.replace(t.auxiliary,n),e}return $h(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":vh,"modal-infinitive":vh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,kh(r)),a&&(e=e.replace(t.root,a,Bh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),zh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return yh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Bh),e.remove("will"),e}};var Sh=function(e,t,n){return Fh.hasOwnProperty(n)?((e=Fh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hh={tags:!0},Mh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,kh(r)),o&&(e=e.replace(r,o,Hh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Lh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,kh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Hh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Wh={infinitive:Mh,"simple-present":Mh,"simple-past":Mh,"simple-future":vh,"present-progressive":Lh,"past-progressive":Lh,"future-progressive":vh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":vh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":vh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":vh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":vh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":vh,"modal-past":vh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Mh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jh=function(e,t,n){return e.has("will")||e.has("going to")?e:Wh.hasOwnProperty(n)?((e=Wh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qh={tags:!0};var Kh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,kh(a));let s=r(i,e.model).Gerund;return s&&(s=`${wh(e)} ${s}`,e.replace(a,s,qh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Uh={tags:!0},Rh=function(e,t){let n=Ph(e);return e.prepend(n+" not"),e},Qh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},_h=e=>e.has("(is|was|am|are|will|were|be)"),Zh={"simple-present":(e,t)=>!0===_h(e)?Qh(e):(e=Ah(e,t),e=Rh(e)),"simple-past":(e,t)=>!0===_h(e)?Qh(e):((e=Ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_h(e)?Qh(e):Rh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Uh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Rh(e)).replace("wants","want",Uh)};var Yh=function(e,t,n){if(e.has("#Negative"))return e;if(Zh.hasOwnProperty(n))return e=Zh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_h(e)?Qh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Xh=(e,t)=>"number"==typeof t?e.eq(t):e;var ed={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Xh(this,e).map(nh)}json(e,t){return Xh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ih(t),n},[])}subjects(e){return Xh(this,e).map(e=>(nh(e),bh(e).subject))}adverbs(e){return Xh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Xh(this,e).filter(e=>!0!==bh(e).plural)}isPlural(e){return Xh(this,e).filter(e=>!0===bh(e).plural)}isImperative(e){return Xh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Gh(e,t,n.form)})}toPresentTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Sh(e,t,n.form)})}toPastTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Vh(e,t,n.form)})}toFutureTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Jh(e,t,n.form)})}toGerund(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Kh(e,t,n.form)})}conjugate(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Gh(e.clone(),t,n.form).text("normal"),PastTense:Vh(e.clone(),t,n.form).text("normal"),PresentTense:Sh(e.clone(),t,n.form).text("normal"),FutureTense:Jh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Yh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=_c(this);return t=Xh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(_l),m.plugin(vu),m.plugin(xu),m.plugin(Hu),m.plugin(Ac),m.plugin(Ec),m.plugin(Bc),m.plugin(Qc),m.plugin(ed),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/one/compromise-one.cjs b/builds/one/compromise-one.cjs index 2219011c1..1a8a66816 100644 --- a/builds/one/compromise-one.cjs +++ b/builds/one/compromise-one.cjs @@ -1,2 +1,2 @@ -var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}},n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]);return t(r,n)});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer,n=this._cache||[];if(e||(e=this.docs.map((t,e)=>[e])),e[t]){let r=this.update([e[t]]);return r._cache=n[t],r}return this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(e._cache&&t&&t.length>1){let n=[];t.forEach(t=>{1===t.length&&n.push(e._cache[t[0]])}),e._cache=n}return e.world=this.world,e}toView(t){return void 0===t&&(t=this.pointer),new View(this.document,t)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var a=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(c(n))for(const r in n)c(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);return o.world=n,"number"==typeof t&&(t=String(t)),t?"string"==typeof t?new e(r.one.tokenize.fromString(t,n)):(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView?new e(t.document,t.ptrs):u(t)?u(t[0])?new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))):new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t)):o):o;var i};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return a(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,t=>t.toLowerCase()))}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){t.has("@hasContraction")&&t.grow("@hasContraction").contractions().expand()},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;let i=e.fullPointer,s=e.fullPointer;e.forEach((l,c)=>{let a=l.fullPointer[0],[u]=a,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([a]).firstTerm()),j(h,a,f,r)):(P(e.update([a]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace(T,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var z=C,N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const F={remove:function(t){const{indexN:e}=this.methods.one.pointer;let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var L=F;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V,D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var U={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if("function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),M.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}},R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},$,z,L,q,U,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null},nt=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,ct=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,at=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||at.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ct),null!==r?[r[1],"to",r[4]]:null)};const ht=/'/,ft=/^[0-9][^-–—]*[-–—].*?[0-9]/,pt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},dt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},gt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},mt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let c=null,a=null;!0===ht.test(r[l].normal)&&([c,a]=r[l].normal.split(ht));let u=mt(i,r[l],c,a);!u&&dt.hasOwnProperty(a)&&(u=dt[a](r,l,e)),!u&>.hasOwnProperty(c)&&(u=gt[c](r,l)),u?(u=wt(u,t),K(n,[s,l],u),pt(n[s],t,l,u.length)):ft.test(r[l].normal)&&(u=ut(r,l),u&&(u=wt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e),pt(n[s],t,l,u.length)))}})}},hooks:["contractions"]},bt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let c=t[e],a=c.machine||c.normal;return void 0!==t[e+1]&&!0===s[a]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===vt.test(c)){let t=c.replace(vt,"");if(s.hasOwnProperty(t)&&t.length>3&&xt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Et={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]},Ot=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(c);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][c];o[a]=t,r[t]&&(r[a]=r[a]||[],r[a]=r[a].concat(r[t]))}else o[a]=0}}return{goNext:n,endAs:r,failTo:o}};const kt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(c))}return t.update(r)};const St=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var At=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=St(t.goNext,void 0),t.failTo=St(t.failTo,0),t.endAs=St(t.endAs,null),t},$t={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ot(t,this.world));var r;let o=_t(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=Ot(t,this.world());return At(e)}}};const Tt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ct=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Tt(n,e),Object.keys(r).forEach(t=>{r[t]=Tt(r[t],e)}),{ptrs:n,byGroup:r}},zt=t=>"[object Object]"===Object.prototype.toString.call(t),Nt=t=>t&&zt(t)&&!0===t.isView,Ft=t=>t&&zt(t)&&!0===t.isNet;var Lt={matchOne:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t).eq(0);if(Ft(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},match:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t);if(Ft(t))return this.sweep(t,{tagger:!1}).view.settle();"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},has:function(t,e,n){const r=this.methods.one;if(Nt(t))return t.fullPointer.length>0;if(Ft(t))return this.sweep(t,{tagger:!1}).view.found;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.filter(e=>e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Nt(t))return this.filter(e=>!e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}"string"==typeof t&&(t=o.killUnicode(t,this.world),t=o.parseMatch(t,n,this.world));let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}},Vt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const qt=function(t,e){return[t[0],t[1],e[2]]},Dt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Gt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Bt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(qt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(qt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Mt=Bt;const Ut=Object.assign({},Lt,Vt,Mt);Ut.lookBehind=Ut.before,Ut.lookBefore=Ut.before,Ut.lookAhead=Ut.after,Ut.lookAfter=Ut.after,Ut.notIf=Ut.ifNo;var Wt=function(t){Object.assign(t.prototype,Ut)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Rt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qt=/ /g,Ht=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Zt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var Kt=function(t){let e=t.split(It),n=[];e.forEach(t=>{Ht(t)?n.push(t):n=n.concat(t.split(Rt))}),n=Zt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Ht(t)?r.push(t):r=r.concat(t.split(Qt))}),r=Zt(r),r};const Jt=/\{([0-9]+)?(, *[0-9]*)?\}/,Xt=/&&/,Yt=new RegExp(/^<\s*(\S+)\s*>/),te=t=>t.charAt(0).toUpperCase()+t.substring(1),ee=t=>t.charAt(t.length-1),ne=t=>t.charAt(0),re=t=>t.substring(1),oe=t=>t.substring(0,t.length-1),ie=function(t){return t=re(t),t=oe(t)},se=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ee(t)&&(n.end=!0,t=oe(t)),"^"===ne(t)&&(n.start=!0,t=re(t)),("["===ne(t)||"]"===ee(t))&&(n.group=null,"["===ne(t)&&(n.groupStart=!0),"]"===ee(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ne(t))){const e=Yt.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ee(t)&&(n.greedy=!0,t=oe(t)),"*"!==t&&"*"===ee(t)&&"\\*"!==t&&(n.greedy=!0,t=oe(t)),"?"===ee(t)&&(n.optional=!0,t=oe(t)),"!"===ne(t)&&(n.negative=!0,t=re(t)),"~"===ne(t)&&"~"===ee(t)&&t.length>2&&(t=ie(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===ne(t)&&")"===ee(t)){Xt.test(t)?(n.choices=t.split(Xt),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=re(n.choices[0]);let r=n.choices.length-1;n.choices[r]=oe(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>se(t,e))),t=""}if("/"===ne(t)&&"/"===ee(t))return t=ie(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===ne(t)&&"}"===ee(t))return t=ie(t),/\//.test(t)?(n.sense=t,n.greedy=!0):n.machine=t,n;if("<"===ne(t)&&">"===ee(t))return t=ie(t),n.chunk=te(t),n.greedy=!0,n;if("%"===ne(t)&&"%"===ee(t))return t=ie(t),n.switch=t,n}return!0===Jt.test(t)&&(t=t.replace(Jt,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ne(t)?(n.tag=re(t),n.tag=te(n.tag),n):"@"===ne(t)?(n.method=re(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var le=se;const ce=/[a-z0-9][-–—][a-z]/i;var ae=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&ce.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t},ue=function(t){return t=function(t){return t.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=(t=function(t){let e=0,n=null;for(let r=0;r{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))},he=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=Kt(t);return r=r.map(t=>le(t,e)),r=ae(r,n),r=ue(r),r};const fe=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var pe=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,c,a,u,h=[];for(let t=0;t4)return n;l=e[i-1],c=s===l?0:1,a=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+c)-1!==t.post.indexOf(e),ve=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>be(t,","),hasPeriod:t=>!0===be(t,".")&&!1===be(t,"..."),hasExclamation:t=>be(t,"!"),hasQuestionMark:t=>be(t,"?")||be(t,"¿"),hasEllipses:t=>be(t,"..")||be(t,"…")||ve(t,"..")||ve(t,"…"),hasSemicolon:t=>be(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>we.test(t.post)||we.test(t.pre),hasDash:t=>ye.test(t.post)||ye.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};xe.hasQuotation=xe.hasQuote;var je=xe;let Ee=function(){};Ee=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(de(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof je[e.method]&&!0===je[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ee(t,e,n,r)):e.choices.some(e=>Ee(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Oe=Ee;const ke=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Pe(t,t.t).length=r-t.t),t.t=r,!0)};const Se=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Oe(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Oe(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Pe(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Te=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Oe(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null},Ce=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Oe(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Oe(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},ze=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},Ne=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Fe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Ce(t),r.implicit&&t.terms[t.t+1]&&Ne(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||ze(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Pe(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Le=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator){if(!0!==t.anything){if(!0!==ke(t,o)){if(!0!==Oe(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative&&!Te(o))return null;if(!0!==t.optional)return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else if(!Fe(o))return null}else if(!$e(o))return null}else if(!Ae(o))return null}else if(!_e(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}},Ve=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const qe=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},De=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var Ge={api:Wt,methods:{one:{termMethods:je,parseMatch:he,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=De(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ve(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Be=/^\../,Me=/^#./,Ue=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Be.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var We={html:function(t){let{starts:e,ends:n}=Ue(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Re,""),He.test(o)&&(o=" "),o=o.replace(Qe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Re,""),o="-"===o?" ":o.replace(Ie,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&Ze.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Je={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Je.clean=Je.normal,Je.reduced=Je.root;var Xe=Je;let Ye=[],tn=0;for(;tn<64;)Ye[tn]=0|4294967296*Math.sin(++tn%Math.PI);function en(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(tn=s=0;tn>4]+Ye[s]+~~i[tn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const nn={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(t,e){return Object.assign({},t,e)},sn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,on(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,on(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,rn,!1),root:t=>Ke(t,on(rn,{form:"root"}),!1),hash:t=>en(Ke(t,{keepPunct:!0},!1)),offset:t=>{let e=sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},nn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&sn[i]&&(o[i]=sn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};ln.data=ln.json;var cn=ln,an=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};const un="";var hn={green:t=>""+t+un,red:t=>""+t+un,blue:t=>""+t+un,magenta:t=>""+t+un,cyan:t=>""+t+un,yellow:t=>""+t+un,black:t=>""+t+un,dim:t=>""+t+un,i:t=>""+t+un},fn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(hn.blue("\n ──────")),e.forEach(t=>{console.log(hn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=hn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=hn.blue(" │ ")+hn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return hn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},pn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(hn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(hn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(hn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(hn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},dn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${hn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const gn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var mn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t);if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}},yn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&Xe.hasOwnProperty(t)?e=Object.assign({},Xe[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},jn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var En=function(t,e){let n=jn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r},On={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,c,a]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!c||u[s]&&u[s].id===c)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(c,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(a&&u[u.length-1].id!==a&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:jn,splitAll:En}}},kn=function(t,e){let n=t.concat(e),r=jn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>xn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n},_n=function(t,e){let n=jn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>xn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},An=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},$n={union:function(t){t=Sn(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)}};$n.and=$n.union,$n.intersection=function(t){t=Sn(t,this);let e=_n(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)},$n.not=function(t){t=Sn(t,this);let e=Pn(this.fullPointer,t.fullPointer);return e=An(e,this.document),this.toView(e)},$n.difference=$n.not,$n.complement=function(){let t=this.all(),e=Pn(t.fullPointer,this.fullPointer);return e=An(e,this.document),this.toView(e)},$n.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=kn(t,[e])}),t=An(t,this.document),this.update(t)};var Tn={methods:On,api:function(t){Object.assign(t.prototype,$n)}};const Cn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var zn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Cn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Cn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Cn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t},Nn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})},Fn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Ln=function(t,e,n,r){let o=[];for(let i=0;i0&&(c.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o},Vn=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=zn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Nn(o,e.hooks);return i=Fn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Ln(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Vn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),1===c.length&&"Noun"===t.tag&&c[0].text&&null!==c[0].text.match(/..s$/)&&s(c,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&(console.log(t),l(c,t.unTag,n,t.safe,o)),t.chunk&&c.forEach(e=>e.chunk=t.chunk)}))}}}};const Dn=/ /,Gn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Bn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Dn.test(e))!function(t,e,n,r){let o=e.split(Dn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Bn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nMn(t,e,n,r))};var Un=Mn,Wn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>In({id:t})),e}return[In({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Zn=t=>"[object Array]"===Object.prototype.toString.call(t),Kn=t=>(t=t||"").trim(),Jn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Rn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Qn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=In({});return t.forEach(t=>{if((t=In(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Hn(e=t).forEach(In),e);var e},Xn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Hn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},Yn=function(t){let e=Hn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},tr={text:Xn,txt:Xn,array:Yn,flat:Yn},er=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Xn(t,!0)),null):tr.hasOwnProperty(e)?tr[e](t):t},nr=t=>{Hn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},rr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Kn(t),!rr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||In({});return new g(e)}add(t,e={}){if(Zn(t))return t.forEach(t=>this.add(Kn(t),e)),this;t=Kn(t);let n=In({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Kn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Hn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Hn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Hn(this.json)}fillDown(){var t;return t=this.json,Hn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Zn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){nr(this.json);let t=Hn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return nr(this.json),er(this.json,t)}debug(){return nr(this.json),er(this.json,"debug"),this}}const or=function(t){let e=Jn(t);return new g(e)};or.prototype.plugin=function(t){t(this)};var ir={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const sr=function(t){if(ir.hasOwnProperty(t.id))return ir[t.id];if(ir.hasOwnProperty(t.is))return ir[t.is];let e=t._cache.parents.find(t=>ir[t]);return ir[e]};var lr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:sr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const cr=function(t){return t?"string"==typeof t?[t]:t:[]};var ar=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=cr(t[e].children),t[e].not=cr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},ur={one:{setTag:Un,unTag:Wn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=ar(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return or(e).cache().fillDown().out("array")}(Object.assign({},e,t));return lr(n)}}};const hr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var fr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),hr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return hr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}},pr=function(t){Object.assign(t.prototype,fr)},dr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const gr=new Set(["Auxiliary","Possessive"]);var mr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(gr.has(t)||!e.hasOwnProperty(n))return 1;if(gr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:ur,api:pr,lib:dr};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,yr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var br=function(t){let e=[],n=t.split(yr);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Vr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,qr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Dr=/['’]/,Gr=/^[a-z]\.([a-z]\.)+/i,Br=/^[-+.][0-9]/,Mr=/^'[0-9]{2}/;var Ur=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Vr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Br.test(t)?"'"===n&&Mr.test(t)?(n="",e):"":(n="",e)))).replace(qr,o=>(r=o,Dr.test(o)&&/[sn]['’]$/.test(e)&&!1===Dr.test(n)?(r=r.replace(Dr,""),"'"):!0===Gr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Wr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Ir=/([A-Z]\.)+[A-Z]?,?$/,Rr=/^[A-Z]\.,?$/,Qr=/[A-Z]{2,}('s|,)?$/,Hr=/([a-z]\.)+[a-z]\.?$/;var Zr=function(t){return function(t){return!0===Ir.test(t)||!0===Hr.test(t)||!0===Rr.test(t)||!0===Qr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Kr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Wr(r),r=n(r,e),r=Zr(r),t.normal=r},Jr={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:_r,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Fr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Cr(n),n=$r(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Ur(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{Kr(t,e)}),n})}}}},Xr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Yr={},to={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{Yr[e]=!0,to[e]="Abbreviation",void 0!==t[1]&&(to[e]=[to[e],t[1]])})});var eo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let no={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ro={};Object.keys(no).forEach((function(t){no[t].split("").forEach((function(e){ro[e]=t}))}));const oo=/\//,io=/[a-z]\.[a-z]/i,so=/[0-9]/;var lo=function(t,e){let n=t.normal||t.text;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),oo.test(n)&&!io.test(n)&&!so.test(n)){let e=n.split(oo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const co=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),co.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},uo=function(t){let e=0,n=0,r=t.document;for(let t=0;tho(t,lo),machine:t=>ho(t,ao),normal:t=>ho(t,Kr),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const mo={safe:!0,min:3};var wo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=go(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}},yo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=po},lib:wo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};return d.extend(H),d.extend(vn),d.extend(Ge),d.extend(Tn),d.extend(mr),d.plugin(yt),d.extend(fo),d.plugin(w),d.extend($t),d.extend(yo),d.extend(Et),d.extend(qn),d},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); +var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}},n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map((t,e)=>[e])),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])}),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);return o.world=n,"number"==typeof t&&(t=String(t)),t?"string"==typeof t?new e(r.one.tokenize.fromString(t,n)):(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView?new e(t.document,t.ptrs):u(t)?u(t[0])?new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))):new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t)):o):o;var i};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,t=>t.toLowerCase()))}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){t.has("@hasContraction")&&t.grow("@hasContraction").contractions().expand()},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace($,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var z=C,N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const L={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var F=L;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V,D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var M={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}},R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},T,z,F,q,M,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null},nt=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ft=new Set(["st","nd","rd","th","am","pm","max"]);var pt=function(t,e){let n=t[e].text.match(ht);if(null!==n){let t=n[2].toLowerCase().trim();return ft.has(t)?null:[n[1],t]}return null};const dt=/'/,gt=/^[0-9][^-–—]*[-–—].*?[0-9]/,mt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},wt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},yt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},bt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===dt.test(r[l].normal)&&([a,c]=r[l].normal.split(dt));let u=bt(i,r[l],a,c);!u&&wt.hasOwnProperty(c)&&(u=wt[c](r,l,e)),!u&&yt.hasOwnProperty(a)&&(u=yt[a](r,l)),u?(u=vt(u,t),K(n,[s,l],u),mt(n[s],t,l,u.length)):gt.test(r[l].normal)?(u=ut(r,l),u&&(u=vt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),mt(n[s],t,l,u.length))):(u=pt(r,l),u&&(u=vt(u,t),K(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}})}},hooks:["contractions"]},jt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Et.test(a)){let t=a.replace(Et,"");if(s.hasOwnProperty(t)&&t.length>3&&Ot.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Pt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]},_t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const St=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const $t=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var Ct=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=$t(t.goNext,void 0),t.failTo=$t(t.failTo,0),t.endAs=$t(t.endAs,null),t},zt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:_t(t,this.world));var r;let o=Tt(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=_t(t,this.world());return Ct(e)}}};const Nt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Lt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Nt(n,e),Object.keys(r).forEach(t=>{r[t]=Nt(r[t],e)}),{ptrs:n,byGroup:r}},Ft=t=>"[object Object]"===Object.prototype.toString.call(t),Vt=t=>t&&Ft(t)&&!0===t.isView,qt=t=>t&&Ft(t)&&!0===t.isNet,Dt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Gt={matchOne:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t).eq(0);if(qt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t);if(qt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Dt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Vt(t))return t.fullPointer.length>0;if(qt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.filter(e=>e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Vt(t))return this.filter(e=>!e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Dt(t,n,this.world);let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}},Bt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Ut=function(t,e){return[t[0],t[1],e[2]]},Mt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Wt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},It={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Ut(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(Ut(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)}};It.split=It.splitAfter;var Rt=It;const Qt=Object.assign({},Gt,Bt,Rt);Qt.lookBehind=Qt.before,Qt.lookBefore=Qt.before,Qt.lookAhead=Qt.after,Qt.lookAfter=Qt.after,Qt.notIf=Qt.ifNo;var Ht=function(t){Object.assign(t.prototype,Qt)};const Zt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Kt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Jt=/ /g,Xt=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Yt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var te=function(t){let e=t.split(Zt),n=[];e.forEach(t=>{Xt(t)?n.push(t):n=n.concat(t.split(Kt))}),n=Yt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Xt(t)?r.push(t):r=r.concat(t.split(Jt))}),r=Yt(r),r};const ee=/\{([0-9]+)?(, *[0-9]*)?\}/,ne=/&&/,re=new RegExp(/^<\s*(\S+)\s*>/),oe=t=>t.charAt(0).toUpperCase()+t.substring(1),ie=t=>t.charAt(t.length-1),se=t=>t.charAt(0),le=t=>t.substring(1),ae=t=>t.substring(0,t.length-1),ce=function(t){return t=le(t),t=ae(t)},ue=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ie(t)&&(n.end=!0,t=ae(t)),"^"===se(t)&&(n.start=!0,t=le(t)),("["===se(t)||"]"===ie(t))&&(n.group=null,"["===se(t)&&(n.groupStart=!0),"]"===ie(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===se(t))){const e=re.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ie(t)&&(n.greedy=!0,t=ae(t)),"*"!==t&&"*"===ie(t)&&"\\*"!==t&&(n.greedy=!0,t=ae(t)),"?"===ie(t)&&(n.optional=!0,t=ae(t)),"!"===se(t)&&(n.negative=!0,t=le(t)),"~"===se(t)&&"~"===ie(t)&&t.length>2&&(t=ce(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===se(t)&&")"===ie(t)){ne.test(t)?(n.choices=t.split(ne),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=le(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ae(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>ue(t,e))),t=""}if("/"===se(t)&&"/"===ie(t))return t=ce(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===se(t)&&"}"===ie(t)){if(t=ce(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===se(t)&&">"===ie(t))return t=ce(t),n.chunk=oe(t),n.greedy=!0,n;if("%"===se(t)&&"%"===ie(t))return t=ce(t),n.switch=t,n}return!0===ee.test(t)&&(t=t.replace(ee,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===se(t)?(n.tag=le(t),n.tag=oe(n.tag),n):"@"===se(t)?(n.method=le(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var he=ue;const fe=/[a-z0-9][-–—][a-z]/i;var pe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&fe.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t},de=function(t,e){return e.methods.two&&e.methods.two.transform&&(t=t.map(t=>{if(t.root){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform,r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter(t=>t)}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return r.push(n(t.root,e.model)),r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i}(t,e))),n=n.filter(t=>t),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}return t})),t},ge=function(t){return t=function(t){return t.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=(t=function(t){let e=0,n=null;for(let r=0;r{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))},me=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=te(t);return r=r.map(t=>he(t,e)),r=pe(r,n),r=de(r,n),r=ge(r),r};const we=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ye=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ke=(t,e)=>-1!==t.pre.indexOf(e),Pe={hasQuote:t=>ve.test(t.pre)||xe.test(t.post),hasComma:t=>Oe(t,","),hasPeriod:t=>!0===Oe(t,".")&&!1===Oe(t,"..."),hasExclamation:t=>Oe(t,"!"),hasQuestionMark:t=>Oe(t,"?")||Oe(t,"¿"),hasEllipses:t=>Oe(t,"..")||Oe(t,"…")||ke(t,"..")||ke(t,"…"),hasSemicolon:t=>Oe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>je.test(t.post)||je.test(t.pre),hasDash:t=>Ee.test(t.post)||Ee.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};Pe.hasQuotation=Pe.hasQuote;var _e=Pe;let Se=function(){};Se=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(be(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof _e[e.method]&&!0===_e[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Se(t,e,n,r)):e.choices.some(e=>Se(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Ae=Se;const Te=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&($e(t,t.t).length=r-t.t),t.t=r,!0)};const ze=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Ae(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Ae(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&($e(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Fe=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Ae(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null},Ve=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Ae(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Ae(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},qe=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},De=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Ge=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Ve(t),r.implicit&&t.terms[t.t+1]&&De(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||qe(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=$e(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Be=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator){if(!0!==t.anything){if(!0!==Te(t,o)){if(!0!==Ae(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative&&!Fe(o))return null;if(!0!==t.optional)return null}else if(!Ge(o))return null}else if(!Ge(o))return null}else if(!Ge(o))return null}else if(!Le(o))return null}else if(!Ne(o))return null}else if(!Ce(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}},Ue=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const Me=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},We=function(t,e,n){let r=Be(t,e,0,t.length);return r?(r=Me(r,n),r):null};var Ie={api:Ht,methods:{one:{termMethods:_e,parseMatch:me,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=We(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ue(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Re=/^\../,Qe=/^#./,He=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Re.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var Ze={html:function(t){let{starts:e,ends:n}=He(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Je,""),Ye.test(o)&&(o=" "),o=o.replace(Xe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Je,""),o="-"===o?" ":o.replace(Ke,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&tn.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let on=[],sn=0;for(;sn<64;)on[sn]=0|4294967296*Math.sin(++sn%Math.PI);function ln(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(sn=s=0;sn>4]+on[s]+~~i[sn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const an={text:!0,terms:!0};let cn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(t,e){return Object.assign({},t,e)},hn={text:t=>en(t,{keepPunct:!0},!1),normal:t=>en(t,un(rn.normal,{keepPunct:!0}),!1),implicit:t=>en(t,un(rn.implicit,{keepPunct:!0}),!1),machine:t=>en(t,cn,!1),root:t=>en(t,un(cn,{form:"root"}),!1),hash:t=>ln(en(t,{keepPunct:!0},!1)),offset:t=>{let e=hn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const fn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},an,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&hn[i]&&(o[i]=hn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};fn.data=fn.json;var pn=fn,dn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};const gn="";var mn={green:t=>""+t+gn,red:t=>""+t+gn,blue:t=>""+t+gn,magenta:t=>""+t+gn,cyan:t=>""+t+gn,yellow:t=>""+t+gn,black:t=>""+t+gn,dim:t=>""+t+gn,i:t=>""+t+gn},wn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(mn.blue("\n ──────")),e.forEach(t=>{console.log(mn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=mn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=mn.blue(" │ ")+mn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return mn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},yn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(mn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(mn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(mn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(mn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},bn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${mn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const vn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var xn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t);if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}},En={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&rn.hasOwnProperty(t)?e=Object.assign({},rn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},_n=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var Sn=function(t,e){let n=_n(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r},An={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:_n,splitAll:Sn}}},Tn=function(t,e){let n=t.concat(e),r=_n(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>Pn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n},Cn=function(t,e){let n=_n(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>Pn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Nn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Ln={union:function(t){t=zn(t,this);let e=Tn(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)}};Ln.and=Ln.union,Ln.intersection=function(t){t=zn(t,this);let e=Cn(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.not=function(t){t=zn(t,this);let e=$n(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.difference=Ln.not,Ln.complement=function(){let t=this.all(),e=$n(t.fullPointer,this.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=Tn(t,[e])}),t=Nn(t,this.document),this.update(t)};var Fn={methods:An,api:function(t){Object.assign(t.prototype,Ln)}};const Vn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var qn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Vn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Vn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Vn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t},Dn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})},Gn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Bn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o},Un=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=qn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Dn(o,e.hooks);return i=Gn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Bn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Un(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(a,t.unTag,n,t.safe,o),t.chunk&&a.forEach(e=>e.chunk=t.chunk)}))}}}};const Wn=/ /,In=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Rn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Wn.test(e))!function(t,e,n,r){let o=e.split(Wn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Rn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nQn(t,e,n,r))};var Hn=Qn,Zn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Kn({id:t})),e}return[Kn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},tr=t=>"[object Array]"===Object.prototype.toString.call(t),er=t=>(t=t||"").trim(),nr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Jn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Xn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Kn({});return t.forEach(t=>{if((t=Kn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Yn(e=t).forEach(Kn),e);var e},rr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Yn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},or=function(t){let e=Yn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},ir={text:rr,txt:rr,array:or,flat:or},sr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(rr(t,!0)),null):ir.hasOwnProperty(e)?ir[e](t):t},lr=t=>{Yn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},ar=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=er(t),!ar.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Kn({});return new g(e)}add(t,e={}){if(tr(t))return t.forEach(t=>this.add(er(t),e)),this;t=er(t);let n=Kn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=er(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Yn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Yn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var t;return t=this.json,Yn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else tr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){lr(this.json);let t=Yn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return lr(this.json),sr(this.json,t)}debug(){return lr(this.json),sr(this.json,"debug"),this}}const cr=function(t){let e=nr(t);return new g(e)};cr.prototype.plugin=function(t){t(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const hr=function(t){if(ur.hasOwnProperty(t.id))return ur[t.id];if(ur.hasOwnProperty(t.is))return ur[t.is];let e=t._cache.parents.find(t=>ur[t]);return ur[e]};var fr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:hr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const pr=function(t){return t?"string"==typeof t?[t]:t:[]};var dr=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=pr(t[e].children),t[e].not=pr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},gr={one:{setTag:Hn,unTag:Zn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=dr(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return cr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return fr(n)}}};const mr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var wr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),mr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return mr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}},yr=function(t){Object.assign(t.prototype,wr)},br={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const vr=new Set(["Auxiliary","Possessive"]);var xr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(vr.has(t)||!e.hasOwnProperty(n))return 1;if(vr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:gr,api:yr,lib:br};const jr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Er=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Or=function(t){let e=[],n=t.split(Er);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Ur=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Ir=/^[a-z]\.([a-z]\.)+/i,Rr=/^[-+.][0-9]/,Qr=/^'[0-9]{2}/;var Hr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Ur,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Rr.test(t)?"'"===n&&Qr.test(t)?(n="",e):"":(n="",e)))).replace(Mr,o=>(r=o,Wr.test(o)&&/[sn]['’]$/.test(e)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Ir.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Zr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Kr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Xr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var to=function(t){return function(t){return!0===Kr.test(t)||!0===Yr.test(t)||!0===Jr.test(t)||!0===Xr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},eo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Zr(r),r=n(r,e),r=to(r),t.normal=r},no={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:Cr,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Gr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Vr(n),n=Lr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Hr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{eo(t,e)}),n})}}}},ro={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let oo={},io={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{oo[e]=!0,io[e]="Abbreviation",void 0!==t[1]&&(io[e]=[io[e],t[1]])})});var so=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let lo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ao={};Object.keys(lo).forEach((function(t){lo[t].split("").forEach((function(e){ao[e]=t}))}));const co=/\//,uo=/[a-z]\.[a-z]/i,ho=/[0-9]/;var fo=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),co.test(n)&&!uo.test(n)&&!ho.test(n)){let e=n.split(co);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const po=/^\p{Letter}+-\p{Letter}+$/u;var go=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),po.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},mo=function(t){let e=0,n=0,r=t.document;for(let t=0;two(t,fo),machine:t=>wo(t,go),normal:t=>wo(t,eo),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const xo={safe:!0,min:3};var jo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},xo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=vo(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}},Eo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=bo},lib:jo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};return d.extend(H),d.extend(kn),d.extend(Ie),d.extend(Fn),d.extend(xr),d.plugin(xt),d.extend(yo),d.plugin(w),d.extend(zt),d.extend(Eo),d.extend(Pt),d.extend(Mn),d},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); diff --git a/builds/one/compromise-one.mjs b/builds/one/compromise-one.mjs index c5751776e..c03b962f7 100644 --- a/builds/one/compromise-one.mjs +++ b/builds/one/compromise-one.mjs @@ -1,2 +1,2 @@ -var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]);return t(r,n)});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer,n=this._cache||[];if(e||(e=this.docs.map((t,e)=>[e])),e[t]){let r=this.update([e[t]]);return r._cache=n[t],r}return this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(e._cache&&t&&t.length>1){let n=[];t.forEach(t=>{1===t.length&&n.push(e._cache[t[0]])}),e._cache=n}return e.world=this.world,e}toView(t){return void 0===t&&(t=this.pointer),new View(this.document,t)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(u(t)){if(u(t[0])){return new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set}))))}return new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t))}return o};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,t=>t.toLowerCase())));var i}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){if(t.has("@hasContraction")){t.grow("@hasContraction").contractions().expand()}},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace(T,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},C.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var z=C;var N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const F={remove:function(t){const{indexN:e}=this.methods.one.pointer;let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var L=F;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V;var D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var U={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if("function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),M.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}};var R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},$,z,L,q,U,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null};var nt=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/'/,ft=/^[0-9][^-–—]*[-–—].*?[0-9]/,pt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},dt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},gt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},mt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===ht.test(r[l].normal)&&([a,c]=r[l].normal.split(ht));let u=mt(i,r[l],a,c);!u&&dt.hasOwnProperty(c)&&(u=dt[c](r,l,e)),!u&>.hasOwnProperty(a)&&(u=gt[a](r,l)),u?(u=wt(u,t),K(n,[s,l],u),pt(n[s],t,l,u.length)):ft.test(r[l].normal)&&(u=ut(r,l),u&&(u=wt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e),pt(n[s],t,l,u.length)))}})}},hooks:["contractions"]};var bt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===vt.test(a)){let t=a.replace(vt,"");if(s.hasOwnProperty(t)&&t.length>3&&xt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Et={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]};var Ot=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const kt=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const St=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var At=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=St(t.goNext,void 0),t.failTo=St(t.failTo,0),t.endAs=St(t.endAs,null),t};var $t={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:Ot(t,this.world));var r;let o=_t(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=Ot(t,this.world());return At(e)}}};const Tt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ct=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Tt(n,e),Object.keys(r).forEach(t=>{r[t]=Tt(r[t],e)}),{ptrs:n,byGroup:r}},zt=t=>"[object Object]"===Object.prototype.toString.call(t),Nt=t=>t&&zt(t)&&!0===t.isView,Ft=t=>t&&zt(t)&&!0===t.isNet;var Lt={matchOne:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t).eq(0);if(Ft(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.intersection(t);if(Ft(t))return this.sweep(t,{tagger:!1}).view.settle();"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ct(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Nt(t)){return t.fullPointer.length>0}if(Ft(t))return this.sweep(t,{tagger:!1}).view.found;"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Nt(t))return this.filter(e=>e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}"string"==typeof t&&(t=r.killUnicode(t,this.world),t=r.parseMatch(t,n,this.world));let o={regs:t,group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Nt(t))return this.filter(e=>!e.intersection(t).found);if(Ft(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}"string"==typeof t&&(t=o.killUnicode(t,this.world),t=o.parseMatch(t,n,this.world));let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}};var Vt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const qt=function(t,e){return[t[0],t[1],e[2]]},Dt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Gt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Bt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(qt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Dt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(qt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Gt(t,this)),this.update(i)}};Bt.split=Bt.splitAfter;var Mt=Bt;const Ut=Object.assign({},Lt,Vt,Mt);Ut.lookBehind=Ut.before,Ut.lookBefore=Ut.before,Ut.lookAhead=Ut.after,Ut.lookAfter=Ut.after,Ut.notIf=Ut.ifNo;var Wt=function(t){Object.assign(t.prototype,Ut)};const It=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Rt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qt=/ /g,Ht=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Zt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var Kt=function(t){let e=t.split(It),n=[];e.forEach(t=>{Ht(t)?n.push(t):n=n.concat(t.split(Rt))}),n=Zt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Ht(t)?r.push(t):r=r.concat(t.split(Qt))}),r=Zt(r),r};const Jt=/\{([0-9]+)?(, *[0-9]*)?\}/,Xt=/&&/,Yt=new RegExp(/^<\s*(\S+)\s*>/),te=t=>t.charAt(0).toUpperCase()+t.substring(1),ee=t=>t.charAt(t.length-1),ne=t=>t.charAt(0),re=t=>t.substring(1),oe=t=>t.substring(0,t.length-1),ie=function(t){return t=re(t),t=oe(t)},se=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ee(t)&&(n.end=!0,t=oe(t)),"^"===ne(t)&&(n.start=!0,t=re(t)),("["===ne(t)||"]"===ee(t))&&(n.group=null,"["===ne(t)&&(n.groupStart=!0),"]"===ee(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===ne(t))){const e=Yt.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ee(t)&&(n.greedy=!0,t=oe(t)),"*"!==t&&"*"===ee(t)&&"\\*"!==t&&(n.greedy=!0,t=oe(t)),"?"===ee(t)&&(n.optional=!0,t=oe(t)),"!"===ne(t)&&(n.negative=!0,t=re(t)),"~"===ne(t)&&"~"===ee(t)&&t.length>2&&(t=ie(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===ne(t)&&")"===ee(t)){Xt.test(t)?(n.choices=t.split(Xt),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=re(n.choices[0]);let r=n.choices.length-1;n.choices[r]=oe(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>se(t,e))),t=""}if("/"===ne(t)&&"/"===ee(t))return t=ie(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===ne(t)&&"}"===ee(t))return t=ie(t),/\//.test(t)?(n.sense=t,n.greedy=!0):n.machine=t,n;if("<"===ne(t)&&">"===ee(t))return t=ie(t),n.chunk=te(t),n.greedy=!0,n;if("%"===ne(t)&&"%"===ee(t))return t=ie(t),n.switch=t,n}return!0===Jt.test(t)&&(t=t.replace(Jt,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ne(t)?(n.tag=re(t),n.tag=te(n.tag),n):"@"===ne(t)?(n.method=re(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var le=se;const ae=/[a-z0-9][-–—][a-z]/i;var ce=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&ae.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t};var ue=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=t.map(t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))};var he=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=Kt(t);return r=r.map(t=>le(t,e)),r=ce(r,n),r=ue(r),r};const fe=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var pe=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ve=(t,e)=>-1!==t.pre.indexOf(e),xe={hasQuote:t=>ge.test(t.pre)||me.test(t.post),hasComma:t=>be(t,","),hasPeriod:t=>!0===be(t,".")&&!1===be(t,"..."),hasExclamation:t=>be(t,"!"),hasQuestionMark:t=>be(t,"?")||be(t,"¿"),hasEllipses:t=>be(t,"..")||be(t,"…")||ve(t,"..")||ve(t,"…"),hasSemicolon:t=>be(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>we.test(t.post)||we.test(t.pre),hasDash:t=>ye.test(t.post)||ye.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};xe.hasQuotation=xe.hasQuote;var je=xe;let Ee=function(){};Ee=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(de(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof je[e.method]&&!0===je[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ee(t,e,n,r)):e.choices.some(e=>Ee(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Oe=Ee;const ke=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Pe(t,t.t).length=r-t.t}return t.t=r,!0};const Se=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Oe(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Oe(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Pe(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Te=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Oe(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null};var Ce=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Oe(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Oe(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var ze=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var Ne=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Fe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Ce(t),r.implicit&&t.terms[t.t+1]&&Ne(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!ze(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Pe(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Le=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==ke(t,o))if(!0!==Oe(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative){if(!Te(o))return null}if(!0!==t.optional)return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(!Fe(o))return null}else{if(!$e(o))return null}else{if(!Ae(o))return null}else{if(!_e(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}};var Ve=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const qe=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},De=function(t,e,n){let r=Le(t,e,0,t.length);return r?(r=qe(r,n),r):null};var Ge={api:Wt,methods:{one:{termMethods:je,parseMatch:he,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=De(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ve(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Be=/^\../,Me=/^#./,Ue=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Be.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var We={html:function(t){let{starts:e,ends:n}=Ue(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Re,""),He.test(o)&&(o=" "),o=o.replace(Qe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Re,""),o="-"===o?" ":o.replace(Ie,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&Ze.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},Je={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Je.clean=Je.normal,Je.reduced=Je.root;var Xe=Je;let Ye=[],tn=0;for(;tn<64;)Ye[tn]=0|4294967296*Math.sin(++tn%Math.PI);function en(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(tn=s=0;tn>4]+Ye[s]+~~i[tn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const nn={text:!0,terms:!0};let rn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(t,e){return Object.assign({},t,e)},sn={text:t=>Ke(t,{keepPunct:!0},!1),normal:t=>Ke(t,on(Xe.normal,{keepPunct:!0}),!1),implicit:t=>Ke(t,on(Xe.implicit,{keepPunct:!0}),!1),machine:t=>Ke(t,rn,!1),root:t=>Ke(t,on(rn,{form:"root"}),!1),hash:t=>en(Ke(t,{keepPunct:!0},!1)),offset:t=>{let e=sn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},nn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&sn[i]&&(o[i]=sn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};ln.data=ln.json;var an=ln;var cn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};var un={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var hn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(un.blue("\n ──────")),e.forEach(t=>{console.log(un.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=un.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=un.blue(" │ ")+un.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return un[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var fn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(un.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(un.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(un.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(un.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var pn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${un.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const dn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var gn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t)}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}};var wn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&Xe.hasOwnProperty(t)?e=Object.assign({},Xe[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},xn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var jn=function(t,e){let n=xn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r};var En={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:xn,splitAll:jn}}};var On=function(t,e){let n=t.concat(e),r=xn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>vn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n};var Pn=function(t,e){let n=xn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>vn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Sn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},An={union:function(t){t=_n(t,this);let e=On(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)}};An.and=An.union,An.intersection=function(t){t=_n(t,this);let e=Pn(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.not=function(t){t=_n(t,this);let e=kn(this.fullPointer,t.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.difference=An.not,An.complement=function(){let t=this.all(),e=kn(t.fullPointer,this.fullPointer);return e=Sn(e,this.document),this.toView(e)},An.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=On(t,[e])}),t=Sn(t,this.document),this.update(t)};var $n={methods:En,api:function(t){Object.assign(t.prototype,An)}};const Tn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Cn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Tn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Tn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Tn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t};var zn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})};var Nn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>{if(0===t.wants.length)return!0;return t.wants.filter(t=>r.has(t)).length>=t.minWant})})};var Fn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o};var Ln=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=Cn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=zn(o,e.hooks);return i=Nn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Fn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Ln(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&(console.log(t),l(a,t.unTag,n,t.safe,o)),t.chunk&&a.forEach(e=>e.chunk=t.chunk)})}}}};const qn=/ /,Dn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Gn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),qn.test(e))!function(t,e,n,r){let o=e.split(qn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Gn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nBn(t,e,n,r))};var Mn=Bn;var Un=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Wn({id:t})),e}return[Wn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Hn=t=>"[object Array]"===Object.prototype.toString.call(t),Zn=t=>(t=t||"").trim(),Kn=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||In.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Rn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Wn({});return t.forEach(t=>{if((t=Wn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Qn(e=t).forEach(Wn),e);var e},Jn=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Qn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},Xn=function(t){let e=Qn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Yn={text:Jn,txt:Jn,array:Xn,flat:Xn},tr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Jn(t,!0)),null):Yn.hasOwnProperty(e)?Yn[e](t):t},er=t=>{Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},nr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Zn(t),!nr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Wn({});return new g(e)}add(t,e={}){if(Hn(t))return t.forEach(t=>this.add(Zn(t),e)),this;t=Zn(t);let n=Wn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Zn(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Qn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Qn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Qn(this.json)}fillDown(){var t;return t=this.json,Qn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Hn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){er(this.json);let t=Qn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return er(this.json),tr(this.json,t)}debug(){return er(this.json),tr(this.json,"debug"),this}}const rr=function(t){let e=Kn(t);return new g(e)};rr.prototype.plugin=function(t){t(this)};var or={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ir=function(t){if(or.hasOwnProperty(t.id))return or[t.id];if(or.hasOwnProperty(t.is))return or[t.is];let e=t._cache.parents.find(t=>or[t]);return or[e]};var sr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:ir(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const lr=function(t){return t?"string"==typeof t?[t]:t:[]};var ar=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=lr(t[e].children),t[e].not=lr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t};var cr={one:{setTag:Mn,unTag:Un,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=ar(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return rr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return sr(n)}}};const ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var hr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),ur(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return ur(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}};var fr=function(t){Object.assign(t.prototype,hr)};var pr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const dr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(dr.has(t)||!e.hasOwnProperty(n))return 1;if(dr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:cr,api:fr,lib:pr};const mr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,wr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var yr=function(t){let e=[],n=t.split(wr);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Lr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Vr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,qr=/['’]/,Dr=/^[a-z]\.([a-z]\.)+/i,Gr=/^[-+.][0-9]/,Br=/^'[0-9]{2}/;var Mr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Lr,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Gr.test(t)?"'"===n&&Br.test(t)?(n="",e):"":(n="",e)))).replace(Vr,o=>(r=o,qr.test(o)&&/[sn]['’]$/.test(e)&&!1===qr.test(n)?(r=r.replace(qr,""),"'"):!0===Dr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Ur=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Wr=/([A-Z]\.)+[A-Z]?,?$/,Ir=/^[A-Z]\.,?$/,Rr=/[A-Z]{2,}('s|,)?$/,Qr=/([a-z]\.)+[a-z]\.?$/;var Hr=function(t){return function(t){return!0===Wr.test(t)||!0===Qr.test(t)||!0===Ir.test(t)||!0===Rr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Zr=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Ur(r),r=n(r,e),r=Hr(r),t.normal=r};var Kr={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:Pr,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Nr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Tr(n),n=Ar(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Mr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{Zr(t,e)}),n})}}}};var Jr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Xr={},Yr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{Xr[e]=!0,Yr[e]="Abbreviation",void 0!==t[1]&&(Yr[e]=[Yr[e],t[1]])})});var to=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let eo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},no={};Object.keys(eo).forEach((function(t){eo[t].split("").forEach((function(e){no[e]=t}))}));const ro=/\//,oo=/[a-z]\.[a-z]/i,io=/[0-9]/;var so=function(t,e){let n=t.normal||t.text;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ro.test(n)&&!oo.test(n)&&!io.test(n)){let e=n.split(ro);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const lo=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),lo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var co=function(t){let e=0,n=0,r=t.document;for(let t=0;tuo(t,so),machine:t=>uo(t,ao),normal:t=>uo(t,Zr),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const go={safe:!0,min:3};var mo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},go,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=po(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}};var wo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=fo},lib:mo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};d.extend(H),d.extend(bn),d.extend(Ge),d.extend($n),d.extend(gr),d.plugin(yt),d.extend(ho),d.plugin(w),d.extend($t),d.extend(wo),d.extend(Et),d.extend(Vn);export{d as default}; +var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map((t,e)=>[e])),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])}),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(u(t)){if(u(t[0])){return new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set}))))}return new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t))}return o};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),y=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},b=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?b(n):(b(n),b([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||v(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,t=>t.toLowerCase())));var i}(t,i,n),y(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){if(t.has("@hasContraction")){t.grow("@hasContraction").contractions().expand()}},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace($,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},C.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var z=C;var N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const L={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var F=L;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V;var D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var M={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return y(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}};var R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},T,z,F,q,M,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null};var nt=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ft=new Set(["st","nd","rd","th","am","pm","max"]);var pt=function(t,e){let n=t[e].text.match(ht);if(null!==n){let t=n[2].toLowerCase().trim();return ft.has(t)?null:[n[1],t]}return null};const dt=/'/,mt=/^[0-9][^-–—]*[-–—].*?[0-9]/,gt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},wt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},vt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},yt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===dt.test(r[l].normal)&&([a,c]=r[l].normal.split(dt));let u=yt(i,r[l],a,c);!u&&wt.hasOwnProperty(c)&&(u=wt[c](r,l,e)),!u&&vt.hasOwnProperty(a)&&(u=vt[a](r,l)),u?(u=bt(u,t),K(n,[s,l],u),gt(n[s],t,l,u.length)):mt.test(r[l].normal)?(u=ut(r,l),u&&(u=bt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),gt(n[s],t,l,u.length))):(u=pt(r,l),u&&(u=bt(u,t),K(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}})}},hooks:["contractions"]};var jt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===Et.test(a)){let t=a.replace(Et,"");if(s.hasOwnProperty(t)&&t.length>3&&Ot.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Pt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]};var _t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const St=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const $t=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var Ct=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=$t(t.goNext,void 0),t.failTo=$t(t.failTo,0),t.endAs=$t(t.endAs,null),t};var zt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:_t(t,this.world));var r;let o=Tt(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=_t(t,this.world());return Ct(e)}}};const Nt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Lt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Nt(n,e),Object.keys(r).forEach(t=>{r[t]=Nt(r[t],e)}),{ptrs:n,byGroup:r}},Ft=t=>"[object Object]"===Object.prototype.toString.call(t),Vt=t=>t&&Ft(t)&&!0===t.isView,qt=t=>t&&Ft(t)&&!0===t.isNet,Dt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Gt={matchOne:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t).eq(0);if(qt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t);if(qt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Dt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Vt(t)){return t.fullPointer.length>0}if(qt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.filter(e=>e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Vt(t))return this.filter(e=>!e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Dt(t,n,this.world);let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}};var Bt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Ut=function(t,e){return[t[0],t[1],e[2]]},Mt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Wt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},It={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Ut(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(Ut(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)}};It.split=It.splitAfter;var Rt=It;const Qt=Object.assign({},Gt,Bt,Rt);Qt.lookBehind=Qt.before,Qt.lookBefore=Qt.before,Qt.lookAhead=Qt.after,Qt.lookAfter=Qt.after,Qt.notIf=Qt.ifNo;var Ht=function(t){Object.assign(t.prototype,Qt)};const Zt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Kt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Jt=/ /g,Xt=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Yt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var te=function(t){let e=t.split(Zt),n=[];e.forEach(t=>{Xt(t)?n.push(t):n=n.concat(t.split(Kt))}),n=Yt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Xt(t)?r.push(t):r=r.concat(t.split(Jt))}),r=Yt(r),r};const ee=/\{([0-9]+)?(, *[0-9]*)?\}/,ne=/&&/,re=new RegExp(/^<\s*(\S+)\s*>/),oe=t=>t.charAt(0).toUpperCase()+t.substring(1),ie=t=>t.charAt(t.length-1),se=t=>t.charAt(0),le=t=>t.substring(1),ae=t=>t.substring(0,t.length-1),ce=function(t){return t=le(t),t=ae(t)},ue=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ie(t)&&(n.end=!0,t=ae(t)),"^"===se(t)&&(n.start=!0,t=le(t)),("["===se(t)||"]"===ie(t))&&(n.group=null,"["===se(t)&&(n.groupStart=!0),"]"===ie(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===se(t))){const e=re.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ie(t)&&(n.greedy=!0,t=ae(t)),"*"!==t&&"*"===ie(t)&&"\\*"!==t&&(n.greedy=!0,t=ae(t)),"?"===ie(t)&&(n.optional=!0,t=ae(t)),"!"===se(t)&&(n.negative=!0,t=le(t)),"~"===se(t)&&"~"===ie(t)&&t.length>2&&(t=ce(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===se(t)&&")"===ie(t)){ne.test(t)?(n.choices=t.split(ne),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=le(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ae(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>ue(t,e))),t=""}if("/"===se(t)&&"/"===ie(t))return t=ce(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===se(t)&&"}"===ie(t)){if(t=ce(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===se(t)&&">"===ie(t))return t=ce(t),n.chunk=oe(t),n.greedy=!0,n;if("%"===se(t)&&"%"===ie(t))return t=ce(t),n.switch=t,n}return!0===ee.test(t)&&(t=t.replace(ee,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===se(t)?(n.tag=le(t),n.tag=oe(n.tag),n):"@"===se(t)?(n.method=le(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var he=ue;const fe=/[a-z0-9][-–—][a-z]/i;var pe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&fe.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t};var de=function(t,e){return e.methods.two&&e.methods.two.transform&&(t=t.map(t=>{if(t.root){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform,r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter(t=>t)}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return r.push(n(t.root,e.model)),r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i}(t,e))),n=n.filter(t=>t),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}return t})),t};var me=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=t.map(t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))};var ge=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=te(t);return r=r.map(t=>he(t,e)),r=pe(r,n),r=de(r,n),r=me(r),r};const we=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ve=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ke=(t,e)=>-1!==t.pre.indexOf(e),Pe={hasQuote:t=>be.test(t.pre)||xe.test(t.post),hasComma:t=>Oe(t,","),hasPeriod:t=>!0===Oe(t,".")&&!1===Oe(t,"..."),hasExclamation:t=>Oe(t,"!"),hasQuestionMark:t=>Oe(t,"?")||Oe(t,"¿"),hasEllipses:t=>Oe(t,"..")||Oe(t,"…")||ke(t,"..")||ke(t,"…"),hasSemicolon:t=>Oe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>je.test(t.post)||je.test(t.pre),hasDash:t=>Ee.test(t.post)||Ee.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};Pe.hasQuotation=Pe.hasQuote;var _e=Pe;let Se=function(){};Se=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ye(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof _e[e.method]&&!0===_e[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Se(t,e,n,r)):e.choices.some(e=>Se(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Ae=Se;const Te=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){$e(t,t.t).length=r-t.t}return t.t=r,!0};const ze=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Ae(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Ae(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){$e(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Fe=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Ae(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null};var Ve=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Ae(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Ae(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var qe=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var De=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Ge=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Ve(t),r.implicit&&t.terms[t.t+1]&&De(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!qe(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=$e(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Be=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==Te(t,o))if(!0!==Ae(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative){if(!Fe(o))return null}if(!0!==t.optional)return null}else{if(!Ge(o))return null}else{if(!Ge(o))return null}else{if(!Ge(o))return null}else{if(!Le(o))return null}else{if(!Ne(o))return null}else{if(!Ce(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}};var Ue=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const Me=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},We=function(t,e,n){let r=Be(t,e,0,t.length);return r?(r=Me(r,n),r):null};var Ie={api:Ht,methods:{one:{termMethods:_e,parseMatch:ge,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=We(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ue(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Re=/^\../,Qe=/^#./,He=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Re.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var Ze={html:function(t){let{starts:e,ends:n}=He(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Je,""),Ye.test(o)&&(o=" "),o=o.replace(Xe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Je,""),o="-"===o?" ":o.replace(Ke,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&tn.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let on=[],sn=0;for(;sn<64;)on[sn]=0|4294967296*Math.sin(++sn%Math.PI);function ln(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(sn=s=0;sn>4]+on[s]+~~i[sn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const an={text:!0,terms:!0};let cn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(t,e){return Object.assign({},t,e)},hn={text:t=>en(t,{keepPunct:!0},!1),normal:t=>en(t,un(rn.normal,{keepPunct:!0}),!1),implicit:t=>en(t,un(rn.implicit,{keepPunct:!0}),!1),machine:t=>en(t,cn,!1),root:t=>en(t,un(cn,{form:"root"}),!1),hash:t=>ln(en(t,{keepPunct:!0},!1)),offset:t=>{let e=hn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const fn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},an,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&hn[i]&&(o[i]=hn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};fn.data=fn.json;var pn=fn;var dn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};var mn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var gn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(mn.blue("\n ──────")),e.forEach(t=>{console.log(mn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=mn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=mn.blue(" │ ")+mn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return mn[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var wn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(mn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(mn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(mn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(mn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var vn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${mn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const yn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var bn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t)}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}};var jn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&rn.hasOwnProperty(t)?e=Object.assign({},rn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Pn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var _n=function(t,e){let n=Pn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r};var Sn={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:Pn,splitAll:_n}}};var An=function(t,e){let n=t.concat(e),r=Pn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>kn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n};var $n=function(t,e){let n=Pn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>kn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},zn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Nn={union:function(t){t=Cn(t,this);let e=An(this.fullPointer,t.fullPointer);return e=zn(e,this.document),this.toView(e)}};Nn.and=Nn.union,Nn.intersection=function(t){t=Cn(t,this);let e=$n(this.fullPointer,t.fullPointer);return e=zn(e,this.document),this.toView(e)},Nn.not=function(t){t=Cn(t,this);let e=Tn(this.fullPointer,t.fullPointer);return e=zn(e,this.document),this.toView(e)},Nn.difference=Nn.not,Nn.complement=function(){let t=this.all(),e=Tn(t.fullPointer,this.fullPointer);return e=zn(e,this.document),this.toView(e)},Nn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=An(t,[e])}),t=zn(t,this.document),this.update(t)};var Ln={methods:Sn,api:function(t){Object.assign(t.prototype,Nn)}};const Fn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Vn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Fn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Fn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Fn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t};var qn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})};var Dn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>{if(0===t.wants.length)return!0;return t.wants.filter(t=>r.has(t)).length>=t.minWant})})};var Gn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o};var Bn=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=Vn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=qn(o,e.hooks);return i=Dn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Gn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Bn(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(a,t.unTag,n,t.safe,o),t.chunk&&a.forEach(e=>e.chunk=t.chunk)})}}}};const Mn=/ /,Wn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},In=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Mn.test(e))!function(t,e,n,r){let o=e.split(Mn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),In(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nRn(t,e,n,r))};var Qn=Rn;var Hn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Zn({id:t})),e}return[Zn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Yn=t=>"[object Array]"===Object.prototype.toString.call(t),tr=t=>(t=t||"").trim(),er=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Kn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Jn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Zn({});return t.forEach(t=>{if((t=Zn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Xn(e=t).forEach(Zn),e);var e},nr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Xn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},rr=function(t){let e=Xn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},or={text:nr,txt:nr,array:rr,flat:rr},ir=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(nr(t,!0)),null):or.hasOwnProperty(e)?or[e](t):t},sr=t=>{Xn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},lr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=tr(t),!lr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Zn({});return new g(e)}add(t,e={}){if(Yn(t))return t.forEach(t=>this.add(tr(t),e)),this;t=tr(t);let n=Zn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=tr(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Xn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Xn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Xn(this.json)}fillDown(){var t;return t=this.json,Xn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Yn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){sr(this.json);let t=Xn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return sr(this.json),ir(this.json,t)}debug(){return sr(this.json),ir(this.json,"debug"),this}}const ar=function(t){let e=er(t);return new g(e)};ar.prototype.plugin=function(t){t(this)};var cr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ur=function(t){if(cr.hasOwnProperty(t.id))return cr[t.id];if(cr.hasOwnProperty(t.is))return cr[t.is];let e=t._cache.parents.find(t=>cr[t]);return cr[e]};var hr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:ur(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const fr=function(t){return t?"string"==typeof t?[t]:t:[]};var pr=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=fr(t[e].children),t[e].not=fr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t};var dr={one:{setTag:Qn,unTag:Hn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=pr(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return ar(e).cache().fillDown().out("array")}(Object.assign({},e,t));return hr(n)}}};const mr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var gr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),mr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return mr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}};var wr=function(t){Object.assign(t.prototype,gr)};var vr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const yr=new Set(["Auxiliary","Possessive"]);var br={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(yr.has(t)||!e.hasOwnProperty(n))return 1;if(yr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:dr,api:wr,lib:vr};const xr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,jr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Er=function(t){let e=[],n=t.split(jr);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Br=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ur=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Mr=/['’]/,Wr=/^[a-z]\.([a-z]\.)+/i,Ir=/^[-+.][0-9]/,Rr=/^'[0-9]{2}/;var Qr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Br,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Ir.test(t)?"'"===n&&Rr.test(t)?(n="",e):"":(n="",e)))).replace(Ur,o=>(r=o,Mr.test(o)&&/[sn]['’]$/.test(e)&&!1===Mr.test(n)?(r=r.replace(Mr,""),"'"):!0===Wr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Hr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Zr=/([A-Z]\.)+[A-Z]?,?$/,Kr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,Xr=/([a-z]\.)+[a-z]\.?$/;var Yr=function(t){return function(t){return!0===Zr.test(t)||!0===Xr.test(t)||!0===Kr.test(t)||!0===Jr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var to=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Hr(r),r=n(r,e),r=Yr(r),t.normal=r};var eo={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:$r,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Dr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Fr(n),n=Nr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Qr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{to(t,e)}),n})}}}};var no={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ro={},oo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{ro[e]=!0,oo[e]="Abbreviation",void 0!==t[1]&&(oo[e]=[oo[e],t[1]])})});var io=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let so={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},lo={};Object.keys(so).forEach((function(t){so[t].split("").forEach((function(e){lo[e]=t}))}));const ao=/\//,co=/[a-z]\.[a-z]/i,uo=/[0-9]/;var ho=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ao.test(n)&&!co.test(n)&&!uo.test(n)){let e=n.split(ao);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const fo=/^\p{Letter}+-\p{Letter}+$/u;var po=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),fo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var mo=function(t){let e=0,n=0,r=t.document;for(let t=0;tgo(t,ho),machine:t=>go(t,po),normal:t=>go(t,to),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const bo={safe:!0,min:3};var xo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},bo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=yo(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}};var jo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=vo},lib:xo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};d.extend(H),d.extend(On),d.extend(Ie),d.extend(Ln),d.extend(br),d.plugin(xt),d.extend(wo),d.plugin(w),d.extend(zt),d.extend(jo),d.extend(Pt),d.extend(Un);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 17a275963..e88969535 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),k(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e},Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>vt(e,","),hasPeriod:e=>!0===vt(e,".")&&!1===vt(e,"..."),hasExclamation:e=>vt(e,"!"),hasQuestionMark:e=>vt(e,"?")||vt(e,"¿"),hasEllipses:e=>vt(e,"..")||vt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>vt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=r-e.t),e.t=r,!0)};const Nt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=xt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==jt(e,a)){if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Gt(a))return null;if(!0!==e.optional)return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Vt(a))return null}else if(!Tt(a))return null}else if(!It(a))return null}else if(!Et(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=cn.blue(" │ ")+cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${cn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var gn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},jn=function(e,t){let n=e.concat(t),r=kn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},En=function(e,t){let n=kn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},In=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=Nn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=Nn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.not=function(e){e=Nn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=In(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=jn(e,[t])}),e=In(e,this.document),this.update(e)};var Gn={methods:An,api:function(e){Object.assign(e.prototype,Tn)}};const Dn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Dn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Dn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Dn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Vn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Bn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},zn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=On(a,t.hooks);return o=Vn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Bn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,a)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Fn=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,r){let a=t.split(Fn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nMn(e,t,n,r))};var Ln=Mn,Wn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Jn({id:e})),t}return[Jn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),_n=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Jn({});return e.forEach(e=>{if((e=Jn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Jn),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Rn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:Zn,txt:Zn,array:Yn,flat:Yn},er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},tr=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},nr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!nr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Jn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Jn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){tr(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return tr(this.json),er(this.json,e)}debug(){return tr(this.json),er(this.json,"debug"),this}}const rr=function(e){let t=_n(e);return new g$1(t)};rr.prototype.plugin=function(e){e(this)};var ar={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const or=function(e){if(ar.hasOwnProperty(e.id))return ar[e.id];if(ar.hasOwnProperty(e.is))return ar[e.is];let t=e._cache.parents.find(e=>ar[e]);return ar[t]};var ir=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:or(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sr=function(e){return e?"string"==typeof e?[e]:e:[]};var lr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sr(e[t].children),e[t].not=sr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ur={one:{setTag:Ln,unTag:Wn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=lr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return rr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ir(n)}}};const cr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),cr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return cr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},dr=function(e){Object.assign(e.prototype,hr)},pr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const mr=new Set(["Auxiliary","Possessive"]);var gr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(mr.has(e)||!t.hasOwnProperty(n))return 1;if(mr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:ur,api:dr,lib:pr};const fr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,br=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var vr=function(e){let t=[],n=e.split(br);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,$r=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fr=/['’]/,Sr=/^[a-z]\.([a-z]\.)+/i,Hr=/^[-+.][0-9]/,Mr=/^'[0-9]{2}/;var Lr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(zr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Hr.test(e)?"'"===n&&Mr.test(e)?(n="",t):"":(n="",t)))).replace($r,a=>(r=a,Fr.test(a)&&/[sn]['’]$/.test(t)&&!1===Fr.test(n)?(r=r.replace(Fr,""),"'"):!0===Sr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Wr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Jr=/([A-Z]\.)+[A-Z]?,?$/,qr=/^[A-Z]\.,?$/,Kr=/[A-Z]{2,}('s|,)?$/,Rr=/([a-z]\.)+[a-z]\.?$/;var Ur=function(e){return function(e){return!0===Jr.test(e)||!0===Rr.test(e)||!0===qr.test(e)||!0===Kr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Qr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Wr(r),r=n(r,t),r=Ur(r),e.normal=r},_r={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Er,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Vr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Dr(n),n=Tr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Lr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Qr(e,t)}),n})}}}},Zr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Yr={},Xr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Yr[t]=!0,Xr[t]="Abbreviation",void 0!==e[1]&&(Xr[t]=[Xr[t],e[1]])})});var ea=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ta={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},na={};Object.keys(ta).forEach((function(e){ta[e].split("").forEach((function(t){na[t]=e}))}));const ra=/\//,aa=/[a-z]\.[a-z]/i,oa=/[0-9]/;var ia=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ra.test(n)&&!aa.test(n)&&!oa.test(n)){let t=n.split(ra);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const sa=/^\p{Letter}+-\p{Letter}+$/u;var la=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),sa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ua=function(e){let t=0,n=0,r=e.document;for(let e=0;eca(e,ia),machine:e=>ca(e,la),normal:e=>ca(e,Qr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ma={safe:!0,min:3};var ga={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=da},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ma,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=pa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(yn),m.extend(St),m.extend(Gn),m.extend(gr),m.plugin(be),m.extend(ha),m.plugin(f),m.extend(Te),m.extend(ga),m.extend(Pe),m.extend($n);var fa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ba={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const va=36,ya="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wa=ya.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ka=function(e){if(void 0!==wa[e])return wa[e];let t=0,n=1,r=va,a=1;for(;n=0;n--,a*=va){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Pa=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=ja(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xa(ba[e]);Ta.test(e)?Object.keys(t).forEach(t=>{if(Da[t]=e,"Noun|Verb"===e){let e=Ia(t,Ca);Da[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ga[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ga[e]="Emoticon"),delete Ga[""],delete Ga.null,delete Ga[" "];const Oa="Adjective";var Va={beforeTags:{Determiner:Oa,Possessive:Oa},afterTags:{Adjective:Oa},beforeWords:{seem:Oa,seemed:Oa,seems:Oa,feel:Oa,feels:Oa,felt:Oa,appear:Oa,appears:Oa,appeared:Oa,also:Oa,over:Oa,under:Oa,too:Oa,it:Oa,but:Oa,still:Oa,really:Oa,quite:Oa,well:Oa,very:Oa,deeply:Oa,profoundly:Oa,extremely:Oa,so:Oa,badly:Oa,mostly:Oa,totally:Oa,awfully:Oa,rather:Oa,nothing:Oa,something:Oa,anything:Oa},afterWords:{too:Oa,also:Oa,or:Oa}};const Ba="Gerund";var za={beforeTags:{Adverb:Ba,Preposition:Ba,Conjunction:Ba},afterTags:{Adverb:Ba,Possessive:Ba,Person:Ba,Pronoun:Ba,Determiner:Ba,Copula:Ba,Preposition:Ba,Conjunction:Ba,Comparative:Ba},beforeWords:{been:Ba,keep:Ba,continue:Ba,stop:Ba,am:Ba,be:Ba,me:Ba,began:Ba,start:Ba,starts:Ba,started:Ba,stops:Ba,stopped:Ba,help:Ba,helps:Ba,avoid:Ba,avoids:Ba,love:Ba,loves:Ba,loved:Ba,hate:Ba,hates:Ba,hated:Ba},afterWords:{you:Ba,me:Ba,her:Ba,him:Ba,them:Ba,their:Ba,it:Ba,this:Ba,there:Ba,on:Ba,about:Ba,for:Ba}},$a={beforeTags:Object.assign({},Va.beforeTags,za.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Va.afterTags,za.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Va.beforeWords,za.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Va.afterWords,za.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fa="Singular";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa,Acronym:Fa,Noun:Fa,Adjective:Fa,PresentTense:Fa,Gerund:Fa,PastTense:Fa,Infinitive:Fa,Date:Fa},afterTags:{Value:Fa,Modal:Fa,Copula:Fa,PresentTense:Fa,PastTense:Fa,Demonym:Fa},beforeWords:{the:Fa,with:Fa,without:Fa,of:Fa,for:Fa,any:Fa,all:Fa,on:Fa,cut:Fa,cuts:Fa,save:Fa,saved:Fa,saves:Fa,make:Fa,makes:Fa,made:Fa,minus:Fa,plus:Fa,than:Fa,another:Fa,versus:Fa,neither:Fa,favorite:Fa,best:Fa,daily:Fa,weekly:Fa,linear:Fa,binary:Fa,mobile:Fa,lexical:Fa,technical:Fa,computer:Fa,scientific:Fa,formal:Fa},afterWords:{of:Fa,system:Fa,aid:Fa,method:Fa,utility:Fa,tool:Fa,reform:Fa,therapy:Fa,philosophy:Fa,room:Fa,authority:Fa,says:Fa,said:Fa,wants:Fa,wanted:Fa}};const Ha={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ma={beforeTags:Object.assign({},Va.beforeTags,Sa.beforeTags,Ha.beforeTags),afterTags:Object.assign({},Va.afterTags,Sa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Sa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Sa.afterWords)};const La={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Wa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ja={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},qa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ka={beforeTags:Object.assign({},Va.beforeTags,La),afterTags:Object.assign({},Va.afterTags,Wa),beforeWords:Object.assign({},Va.beforeWords,Ja),afterWords:Object.assign({},Va.afterWords,qa)};const Ra="Infinitive";var Ua={beforeTags:{Modal:Ra,Adverb:Ra,Negative:Ra,Plural:Ra},afterTags:{Determiner:Ra,Adverb:Ra,Possessive:Ra,Preposition:Ra},beforeWords:{i:Ra,we:Ra,you:Ra,they:Ra,to:Ra,please:Ra,will:Ra,have:Ra,had:Ra,would:Ra,could:Ra,should:Ra,do:Ra,did:Ra,does:Ra,can:Ra,must:Ra,us:Ra,me:Ra,he:Ra,she:Ra,it:Ra,being:Ra},afterWords:{the:Ra,me:Ra,you:Ra,him:Ra,her:Ra,them:Ra,it:Ra,a:Ra,an:Ra,up:Ra,down:Ra,by:Ra,out:Ra,off:Ra,under:Ra,when:Ra,all:Ra,to:Ra,because:Ra,although:Ra,before:Ra,how:Ra,otherwise:Ra,together:Ra,though:Ra,yet:Ra}};const Qa={afterTags:{Noun:"Adjective",Conjunction:void 0}};var _a={beforeTags:Object.assign({},Va.beforeTags,Ua.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Va.afterTags,Ua.afterTags,Qa.afterTags),beforeWords:Object.assign({},Va.beforeWords,Ua.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Va.afterWords,Ua.afterWords,{to:void 0})};const Za={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Ya={},Xa={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},eo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var to={beforeTags:Object.assign({},za.beforeTags,Sa.beforeTags,Za),afterTags:Object.assign({},za.afterTags,Sa.afterTags,Ya),beforeWords:Object.assign({},za.beforeWords,Sa.beforeWords,Xa),afterWords:Object.assign({},za.afterWords,Sa.afterWords,eo)},no={beforeTags:Object.assign({},Ua.beforeTags,Sa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ua.afterTags,Sa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ua.beforeWords,Sa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ua.afterWords,Sa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ro="Person";var ao={beforeTags:{Honorific:ro,Person:ro,Preposition:ro},afterTags:{Person:ro,ProperNoun:ro,Verb:ro},ownTags:{ProperNoun:ro},beforeWords:{hi:ro,hey:ro,yo:ro,dear:ro,hello:ro},afterWords:{said:ro,says:ro,told:ro,tells:ro,feels:ro,felt:ro,seems:ro,thinks:ro,thought:ro,spends:ro,spendt:ro,plays:ro,played:ro,sing:ro,sang:ro,learn:ro,learned:ro,wants:ro,wanted:ro}};const oo="Month",io={beforeTags:{Date:oo,Value:oo},afterTags:{Date:oo,Value:oo},beforeWords:{by:oo,in:oo,on:oo,during:oo,after:oo,before:oo,between:oo,until:oo,til:oo,sometime:oo,of:oo,this:oo,next:oo,last:oo,previous:oo,following:oo},afterWords:{sometime:oo,in:oo,of:oo,until:oo,the:oo}};var so={beforeTags:Object.assign({},ao.beforeTags,io.beforeTags),afterTags:Object.assign({},ao.afterTags,io.afterTags),beforeWords:Object.assign({},ao.beforeWords,io.beforeWords),afterWords:Object.assign({},ao.afterWords,io.afterWords)};const lo={Place:"Place"},uo={Place:"Place",Abbreviation:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ho={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},po={"Adj|Gerund":$a,"Adj|Noun":Ma,"Adj|Past":Ka,"Adj|Present":_a,"Noun|Verb":no,"Noun|Gerund":to,"Person|Noun":{beforeTags:Object.assign({},Sa.beforeTags,ao.beforeTags),afterTags:Object.assign({},Sa.afterTags,ao.afterTags),beforeWords:Object.assign({},Sa.beforeWords,ao.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Sa.afterWords,ao.afterWords)},"Person|Date":so,"Person|Verb":{beforeTags:Object.assign({},ao.beforeTags,Ua.beforeTags),afterTags:Object.assign({},ao.afterTags,Ua.afterTags),beforeWords:Object.assign({},ao.beforeWords,Ua.beforeWords),afterWords:Object.assign({},ao.afterWords,Ua.afterWords)},"Person|Place":{beforeTags:Object.assign({},lo,ao.beforeTags),afterTags:Object.assign({},uo,ao.afterTags),beforeWords:Object.assign({},co,ao.beforeWords),afterWords:Object.assign({},ho,ao.afterWords)}},mo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};po["Plural|Verb"]={beforeWords:mo(po["Noun|Verb"].beforeWords,{}),afterWords:mo(po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:mo(po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:mo(po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var go=po;const fo="Adjective",bo="Infinitive",vo="PresentTense",yo="Singular",wo="PastTense",ko="Adverb",Po="Plural",Ao="Actor",jo="Verb",xo="Noun",Eo="LastName",No="Modal",Io="Participle";var To=[null,null,{ea:yo,ia:xo,ic:fo,ly:ko,"'n":jo,"'t":jo},{oed:wo,ued:wo,xed:wo," so":ko,"'ll":No,"'re":"Copula",azy:fo,eer:xo,end:jo,ped:wo,ffy:fo,ify:bo,ing:"Gerund",ize:bo,ibe:bo,lar:fo,mum:fo,nes:vo,nny:fo,ous:fo,que:fo,rol:yo,sis:yo,ogy:yo,oid:yo,ian:yo,zes:vo,eld:wo,ken:Io,ven:Io,ten:Io,ect:bo,ict:bo,ign:bo,ful:fo,bal:fo},{amed:wo,aped:wo,ched:wo,lked:wo,rked:wo,reed:wo,nded:wo,mned:fo,cted:wo,dged:wo,ield:yo,akis:Eo,cede:bo,chuk:Eo,czyk:Eo,ects:vo,ends:jo,enko:Eo,ette:yo,wner:yo,fies:vo,fore:ko,gate:bo,gone:fo,ices:Po,ints:Po,ruct:bo,ines:Po,ions:Po,less:fo,llen:fo,made:fo,nsen:Eo,oses:vo,ould:No,some:fo,sson:Eo,tion:yo,tage:xo,ique:yo,tive:fo,tors:xo,vice:yo,lier:yo,fier:yo,wned:wo,gent:yo,tist:yo,pist:yo,rist:yo,mist:yo,yist:yo,vist:yo,lite:yo,site:yo,rite:yo,mite:yo,bite:yo,mate:yo,date:yo,ndal:yo,vent:yo,uist:yo,gist:yo,note:yo,cide:yo,wide:fo,vide:bo,ract:bo,duce:bo,pose:bo,eive:bo,lyze:bo,lyse:bo,iant:fo,nary:fo},{elist:yo,holic:yo,phite:yo,tized:wo,urned:wo,eased:wo,ances:Po,bound:fo,ettes:Po,fully:ko,ishes:vo,ities:Po,marek:Eo,nssen:Eo,ology:xo,osome:yo,tment:yo,ports:Po,rough:fo,tches:vo,tieth:"Ordinal",tures:Po,wards:ko,where:ko,archy:xo,pathy:xo,opoly:xo,embly:xo,phate:xo,ndent:yo,scent:yo,onist:yo,anist:yo,alist:yo,olist:yo,icist:yo,ounce:bo,iable:fo,borne:fo,gnant:fo,inant:fo,igent:fo,atory:fo,rient:yo,dient:yo},{auskas:Eo,parent:yo,cedent:yo,ionary:yo,cklist:yo,keeper:Ao,logist:Ao,teenth:"Value"},{opoulos:Eo,borough:"Place",sdottir:Eo}];const Go="Adjective",Do="Noun",Co="Verb";var Oo=[null,null,{},{neo:Do,bio:Do,"de-":Co,"re-":Co,"un-":Co},{anti:Do,auto:Do,faux:Go,hexa:Do,kilo:Do,mono:Do,nano:Do,octa:Do,poly:Do,semi:Go,tele:Do,"pro-":Go,"mis-":Co,"dis-":Co,"pre-":Go},{anglo:Do,centi:Do,ethno:Do,ferro:Do,grand:Do,hepta:Do,hydro:Do,intro:Do,macro:Do,micro:Do,milli:Do,nitro:Do,penta:Do,quasi:Go,radio:Do,tetra:Do,"omni-":Go,"post-":Go},{pseudo:Go,"extra-":Go,"hyper-":Go,"inter-":Go,"intra-":Go,"deca-":Go},{electro:Do}];const Vo="Adjective",Bo="Infinitive",zo="PresentTense",$o="Singular",Fo="PastTense",So="Adverb",Ho="Expression",Mo="Actor",Lo="Verb",Wo="Noun",Jo="LastName";var qo={a:[[/.[aeiou]na$/,Wo,"tuna"],[/.[oau][wvl]ska$/,Jo],[/.[^aeiou]ica$/,$o,"harmonica"],[/^([hyj]a+)+$/,Ho,"haha"]],c:[[/.[^aeiou]ic$/,Vo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fo,"rammed"],[/.[aeiou][sg]hed$/,Fo,"gushed"],[/.[aeiou]red$/,Fo,"hired"],[/.[aeiou]r?ried$/,Fo,"hurried"],[/[^aeiou]ard$/,$o,"steward"],[/[aeiou][^aeiou]id$/,Vo,""],[/.[vrl]id$/,Vo,"livid"],[/..led$/,Fo,"hurled"],[/.[iao]sed$/,Fo,""],[/[aeiou]n?[cs]ed$/,Fo,""],[/[aeiou][rl]?[mnf]ed$/,Fo,""],[/[aeiou][ns]?c?ked$/,Fo,"bunked"],[/[aeiou]gned$/,Fo],[/[aeiou][nl]?ged$/,Fo],[/.[tdbwxyz]ed$/,Fo],[/[^aeiou][aeiou][tvx]ed$/,Fo],[/.[cdflmnprstv]ied$/,Fo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,Vo,"fixable"],[/.[^aeiou]eable$/,Vo,"maleable"],[/.[ts]ive$/,Vo,"festive"],[/[a-z]-like$/,Vo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vo,"cornish"],[/.v[iy]ch$/,Jo,"..ovich"],[/^ug?h+$/,Ho,"ughh"],[/^uh[ -]?oh$/,Ho,"uhoh"],[/[a-z]-ish$/,Vo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Jo,"polish-male"]],k:[[/^(k){2}$/,Ho,"kkkk"]],l:[[/.[gl]ial$/,Vo,"familial"],[/.[^aeiou]ful$/,Vo,"fitful"],[/.[nrtumcd]al$/,Vo,"natal"],[/.[^aeiou][ei]al$/,Vo,"familial"]],m:[[/.[^aeiou]ium$/,$o,"magnesium"],[/[^aeiou]ism$/,$o,"schism"],[/^[hu]m+$/,Ho,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vo,"republican"],[/[^aeiou]ician$/,Mo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ho,"noooo"],[/^(yo)+$/,Ho,"yoo"],[/^wo{2,}[pt]?$/,Ho,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$o],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,Mo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vo],[/[aeiou].*ist$/,Vo],[/^[a-z]et$/,Lo]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,Lo],[/.[lstrn]us$/,$o],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,$o],[/[a-z]'s$/,Wo],[/^yes+$/,Ho]],v:[[/.[^aeiou][ai][kln]ov$/,Jo]],y:[[/.[cts]hy$/,Vo],[/.[st]ty$/,Vo],[/.[tnl]ary$/,Vo],[/.[oe]ry$/,$o],[/[rdntkbhs]ly$/,So],[/.(gg|bb|zz)ly$/,Vo],[/...lly$/,So],[/.[gk]y$/,Vo],[/[bszmp]{2}y$/,Vo],[/.[ai]my$/,Vo],[/[ea]{2}zy$/,Vo],[/.[^aeiou]ity$/,$o]]};const Ko="Verb",Ro="Noun";var Uo={leftTags:[["Adjective",Ro],["Possessive",Ro],["Determiner",Ro],["Adverb",Ko],["Pronoun",Ko],["Value",Ro],["Ordinal",Ro],["Modal",Ko],["Superlative",Ro],["Demonym",Ro],["Honorific","Person"]],leftWords:[["i",Ko],["first",Ro],["it",Ko],["there",Ko],["not",Ko],["because",Ro],["if",Ro],["but",Ro],["who",Ko],["this",Ro],["his",Ro],["when",Ro],["you",Ko],["very","Adjective"],["old",Ro],["never",Ko],["before",Ro],["a","Singular"],["the",Ro],["been",Ko]],rightTags:[["Copula",Ro],["PastTense",Ro],["Conjunction",Ro],["Modal",Ro]],rightWords:[["there",Ko],["me",Ko],["man","Adjective"],["only",Ko],["him",Ko],["it",Ko],["were",Ro],["took",Ro],["himself",Ko],["went",Ro],["who",Ro],["jr","Person"]]},Qo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},_o={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Zo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Yo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Xo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ei=/^.([0-9]+)/;var ti=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ei);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ei,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ri=/^([0-9]+)/,ai=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ri);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ri,"")]}(n[0],n[1])})};var oi=function(e={}){return(e=Object.assign({},e)).rules=ai(e.rules),e.rules=ni(e.rules),e.rev&&(e.rev=ai(e.rev),e.rev=ni(e.rev)),e.exceptions=ai(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ii=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const si=oi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),li=oi(Yo),ui=oi(_o),ci=oi(Zo),hi=ii(si),di=ii(li),pi=ii(ui),mi=ii(ci),gi=oi(Qo),fi=oi(Xo);var bi={fromPast:si,fromPresent:li,fromGerund:ui,fromParticiple:ci,toPast:hi,toPresent:di,toGerund:pi,toParticiple:mi,toComparative:gi,toSuperlative:fi,fromComparative:ii(gi),fromSuperlative:ii(fi)},vi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),yi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],wi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ki[t].forEach(n=>e[n]=t),e),{});var Pi=ki,Ai=function(e){let t=e.substring(e.length-3);if(!0===Pi.hasOwnProperty(t))return Pi[t];let n=e.substring(e.length-2);return!0===Pi.hasOwnProperty(n)?Pi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ji={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var xi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ai(e)),ji.hasOwnProperty(e))c=ji[e];else if("Participle"===n)c=ti(l,i);else if("PastTense"===n)c=ti(l,r);else if("PresentTense"===n)c=ti(l,a);else{if("Gerund"!==n)return e;c=ti(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ei=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ti(i,n),PresentTense:ti(i,r),Gerund:ti(i,a),FutureTense:"will "+e},u=ti(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Ni=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Ii="ically",Ti=new Set(["analyt"+Ii,"chem"+Ii,"class"+Ii,"clin"+Ii,"crit"+Ii,"ecolog"+Ii,"electr"+Ii,"empir"+Ii,"frant"+Ii,"grammat"+Ii,"ident"+Ii,"ideolog"+Ii,"log"+Ii,"mag"+Ii,"mathemat"+Ii,"mechan"+Ii,"med"+Ii,"method"+Ii,"method"+Ii,"mus"+Ii,"phys"+Ii,"phys"+Ii,"polit"+Ii,"pract"+Ii,"rad"+Ii,"satir"+Ii,"statist"+Ii,"techn"+Ii,"technolog"+Ii,"theoret"+Ii,"typ"+Ii,"vert"+Ii,"whims"+Ii]),Gi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Di=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ci={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Oi=function(e){return e.endsWith("ly")?Ti.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:Ci.hasOwnProperty(e)?Ci[e]:Ni(e,Gi)||e:null};const Vi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zi=function(e){if(Bi.hasOwnProperty(e))return Bi[e];let t=Ni(e,Vi);return t||e+"ly"};const $i=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Si=new Set(["terrible","annoying"]),Hi=function(e,t){const n=t.two.models.toSuperlative;return ti(e,n)},Mi=function(e,t){const n=t.two.models.toComparative;return ti(e,n)};var Li={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Wi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Li.hasOwnProperty(i)&&Li[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ia,nounToSingular:wi,verbToInfinitive:xi,getTense:Ai,verbConjugate:Ei,adjToSuperlative:Hi,adjToComparative:Mi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ti(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ti(e,n)},advToAdjective:Oi,adjToAdverb:zi,adjToNoun:function(e){if(Fi.hasOwnProperty(e))return Fi[e];if(Si.has(e))return null;let t=Ni(e,$i);return t||e+"ness"}}}},Ji=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const qi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ki=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=qi(n,"Infinitive","PastTense"),Object.assign(s,l),l=qi(r,"Infinitive","Verb"),Object.assign(s,l),l=qi(a,"Infinitive","Gerund"),Object.assign(s,l),l=qi(o,"Adjective","Superlative"),Object.assign(s,l),l=qi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ri={two:{models:bi}};const Ui={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Qi=function(e,t){const n={model:t,methods:Wi};let{lex:r,_multi:a}=Wi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},_i=function(e,t,n){let r=Ei(e,Ri);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Zi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Ui[o],"Noun|Verb"!==o&&"Person|Verb"!==o||_i(a,r,!1),"Adj|Present"===o&&(_i(a,r,!0),function(e,t,n){let r=Hi(e,n);t[r]=t[r]||"Superlative";let a=Mi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=xi(a,Ri,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=xi(a,Ri,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Qi(n,t)};let Yi={one:{_multiCache:{},lexicon:Ga},two:{irregularPlurals:fa,models:bi,suffixPatterns:To,prefixPatterns:Oo,endsWith:qo,neighbours:Uo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Da,clues:go,uncountable:{},orgWords:vi}};Yi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Qi(e.one.lexicon,e)).one.lexicon,e),e=Zi(e.two.switches,e),e=Ki(e),e=Ji(e)}(Yi);var Xi=Yi;const es=/^(under|over|mis|re|un|dis|semi)-?/;var ts=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(es.test(a.normal)){let e=a.normal.replace(es,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ns=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const rs={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},as=new Set(["formulas","koalas","israelis","menus"]),os=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var is=function(e){if(!e||e.length<=3)return!1;if(as.has(e))return!0;let t=e[e.length-1];return rs.hasOwnProperty(t)?rs[t].find(t=>e.endsWith(t)):"s"===t&&!os.find(t=>e.endsWith(t))};const ss=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ls=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(is(e.normal)?ns(e,"Plural","3-plural-guess"):ns(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ai(e.normal);t&&ns(e,t,"3-verb-tense-guess")}}(r)};const us=/^\p{Lu}[\p{Ll}'’]/u,cs=/[0-9]/,hs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,ps=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ms={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===us.test(o)&&!1===cs.test(o)?hs.find(e=>r.tags.has(e))?null:(ls(e,t,n),r.tags.has("Noun")||r.tags.clear(),ns(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&ps.test(o)&&!ms[r.normal]?(ns(r,"RomanNumeral","2-xvii"),!0):null};const fs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var bs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fs(r.normal,n.two.suffixPatterns);if(null!==e)return ns(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fs(r.implicit,n.two.suffixPatterns),null!==e))return ns(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const vs=/['‘’‛‵′`´]/,ys=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ns(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ps=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),As=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ps.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},js=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},xs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Es=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(As(a)||As(o))return ns(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(js(a)||js(o))return ns(n,"Year","2-tagYear-close");if(xs(e[t-2])||xs(e[t+2]))return ns(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ns(n,"Year","2-tagYear-noun")}}}return null};const Ns=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,Ts=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,Cs={I:!0,A:!0};var Os=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Is.test(n)||n.length>5||Cs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ts.test(n)&&!0!==Ds.test(n)&&!0!==Ns.test(n)&&!0!==Gs.test(n))}(r,n)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cs.hasOwnProperty(r.text)&&Ns.test(r.text)?(r.tags.clear(),ns(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ns(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Is.test(r.text)&&r.text.length<=6?(ns(r,"Acronym","3-titlecase-acronym"),!0):null};const Vs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var zs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vs(e[t-1],a),l=l||Vs(e[t+1],o),l=l||Bs(e[t-1],r),l=l||Bs(e[t+1],i),l)return ns(s,l,"3-[neighbour]"),ls(e,t,n),e[t].confidence=.2,!0}return null};const $s=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Fs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$s(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$s(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ss=function(e,t,n){0===e[t].tags.size&&(ns(e[t],"Noun","3-[fallback]"),ls(e,t,n),e[t].confidence=.1)};const Hs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ms=(e,t,n)=>0!==t||e[1]?null:n;var Ls={"Adj|Gerund":(e,t)=>Hs(e,t),"Adj|Noun":(e,t)=>Hs(e,t),"Adj|Past":(e,t)=>Hs(e,t),"Adj|Present":(e,t)=>Hs(e,t),"Noun|Gerund":(e,t)=>Hs(e,t),"Noun|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hs(e,t)||Ms(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hs(e,t),"Person|Verb":(e,t)=>0!==t&&Hs(e,t)};const Ws="undefined"!=typeof process&&process.env?process.env:self.env||{},Js=/^(under|over|mis|re|un|dis|semi)-?/,qs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ws.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ks=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ws.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Rs={tagSwitch:ts,checkSuffix:bs,checkRegex:ws,checkCase:gs,checkPrefix:ks,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ns(o,"Verb","3-[prefix]"),ns(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ns(o,"Adjective","3-[prefix]"),ns(o,"Prefix","3-[prefix]")))},checkYear:Es},Us={checkAcronym:Os,neighbours:zs,orgWords:Fs,nounFallback:Ss,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Js.test(l)&&!o[l]&&(l=l.replace(Js,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=qs(e[t+1],n.afterWords);return o=o||qs(e[t-1],n.beforeWords),o=o||Ks(e[t-1],n.beforeTags,a),o=o||Ks(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ls[o]&&(u=Ls[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Ws.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Qs=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},Ys={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Xs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const dl=/'/;var pl=function(e,t){let n=e[t].normal.split(dl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},ml=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const gl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},fl={in:!0,by:!0,for:!0};var bl=(e,t)=>{let n=e[t];if(gl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===fl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const vl=/'/,yl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},wl={d:(e,t)=>pl(e,t),t:(e,t)=>ml(e,t),s:(e,t,n)=>bl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):hl(e,t)},kl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Pl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===vl.test(r[o].normal)&&([,i]=r[o].normal.split(vl));let s=null;wl.hasOwnProperty(i)&&(s=wl[i](r,o,t)),s&&(s=kl(s,e),ul(n,[a,o],s),yl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ll.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=sl},hooks:["contractionTwo"]};const Al="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",jl=["i","we","they"];let xl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Al+" #Person",tag:"Person",reason:"randy-smith"},{match:Al+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Al}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:jl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:jl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:jl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),El=null;var Nl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;El=El||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(El),e.uncache(),e}},model:{two:{matches:xl}},hooks:["postTagger"]},Il=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Tl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Il(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Gl={api:function(e){e.prototype.swap=Tl}};m.plugin(al),m.plugin(Pl),m.plugin(Nl),m.plugin(Gl);var Dl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Cl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ol={this:"Noun",then:"Pivot"};var Vl=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},Ll={compute:{chunks:function(e){const{document:t,world:n}=e;Vl(t),Bl(t),Fl(e,t,n),Hl(t),Ml(t)}},api:function(e){e.prototype.chunks=Cl,e.prototype.clauses=Dl},hooks:["chunks"]};const Wl=/'s$/;var Jl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ql=/\(/,Kl=/\)/,Rl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ql,"");let t=e[e.length-1];t.post=t.post.replace(Kl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Ql={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},_l=RegExp("("+Object.keys(Ql).join("|")+")"),Zl=RegExp("("+Object.values(Ql).join("|")+")"),Yl=function(e,t){const n=e[t].pre.match(_l)[0]||"";if(!n||!Ql[n])return null;const r=Ql[n];for(;t{e[0].pre=e[0].pre.replace(_l,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const eu=/\./g;var tu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},nu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const ru=(e,t)=>"number"==typeof t?e.eq(t):e,au=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var ou=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=au(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ru(t,e),new Adjectives(t.document,t.pointer)}};const iu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},su=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let lu=[["emojis","emoji"],["atmentions","atMentions"]];var uu=function(e){su.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=iu,lu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},cu={api:function(e){uu(e),Jl(e),Ul(e),Xl(e),ou(e),nu(e),tu(e)}};const hu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var du={case:e=>{hu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;hu(e,e=>e.text=n(e.text,t))},whitespace:e=>{hu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{hu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),mu="unicode|punctuation|whitespace|acronyms",gu="|case|contractions|parentheses|quotations|emoji|honorifics",fu={light:pu(mu),medium:pu(mu+gu),heavy:pu(mu+gu+"|possessives|adverbs|nouns|verbs")};var bu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=fu[e]),Object.keys(e).forEach(t=>{du.hasOwnProperty(t)&&du[t](this,e[t])}),this}}},vu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const yu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var wu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Pu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:ku(e,t),isSubordinate:wu(e),root:t}};const Au=e=>e.text(),ju=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),xu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Eu=function(e){let t=Pu(e);return{root:Au(t.root),number:xu(t.number),determiner:Au(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Nu={tags:!0};var Iu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Nu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Nu),e};const Tu={tags:!0};var Gu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Tu).tag("Singular","toPlural"),e};const Du=(e,t)=>"number"==typeof t?e.eq(t):e;var Cu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Du(this,e).map(Pu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Eu(t)),n},[])}isPlural(e){let t=this.filter(e=>Pu(e).isPlural);return Du(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Pu(e).adjectives;n.found&&(t=t.concat(n))}),Du(t,e)}toPlural(e){return Du(this,e).map(e=>Iu(e,Pu(e)))}toSingular(e){return Du(this,e).map(e=>{let t=Pu(e);return Gu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=vu(this);return t=Du(t,e),new Nouns(this.document,t.pointer)}}},Ou=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Vu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Bu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Bu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Bu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},$u=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Su=/^([0-9,. ]+)\/([0-9,. ]+)$/,Hu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Mu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Lu=function(e){if(!0===Hu.hasOwnProperty(e))return Hu[e];if("a"===e||"an"===e)return 1;const t=Vu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ju(n),r=Ju(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ju(n);let a=r.text("reduced");return Wu.test(a)&&(a=a.replace(Wu,""),r=r.replaceWith(a)),r=qu.hasOwnProperty(a)?qu[a]:Ju(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Ju(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ru=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Uu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Qu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],_u=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Zu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Uu[n][1]&&(e-=Uu[n][1],t.push(Uu[n][0]));return Qu[e]&&t.push(Qu[e]),t};var Yu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ru(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return _u.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Zu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ru(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},Xu=function(e){return e.numerator&&e.denominator?`${Yu({num:e.numerator})} out of ${Yu({num:e.denominator})}`:""};const ec={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var tc=e=>{let t=Yu(e).split(" "),n=t[t.length-1];return ec.hasOwnProperty(n)?t[t.length-1]=ec[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},nc=function(e){if(!e.numerator||!e.denominator)return"";let t=Yu({num:e.numerator}),n=tc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const rc=(e,t)=>"number"==typeof t?e.eq(t):e;var ac=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return rc(this,e).map(Ku)}get(e){return rc(this,e).map(Ku)}json(e){return rc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ku(t);return n.fraction=r,n},[])}toDecimal(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return rc(this,e).forEach(e=>{let t=Ku(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=nc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=Xu(t);e.replaceWith(n)}),this}toPercentage(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ou(this);return t=rc(t,e),new Fractions(this.document,t.pointer)}};const oc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ic=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+oc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+oc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+oc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+oc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${oc})`),r=e.has("("+oc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+oc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+oc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},sc=function(e){if("string"==typeof e)return{num:Lu(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Ku(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Lu(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}},lc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ru(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const uc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},cc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var hc=function(e){let t={suffix:"",prefix:e.prefix};return uc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+uc[e.prefix],t.prefix=""),cc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+cc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},dc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=hc(e);return t+tc(e)+n}if("Ordinal"===t)return e.prefix+lc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=hc(e);return t+Yu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const pc=(e,t)=>"number"==typeof t?e.eq(t):e;var mc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return pc(this,e).map(sc)}get(e){return pc(this,e).map(sc).map(e=>e.num)}json(e){return pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=sc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=sc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=dc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=sc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=dc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>sc(t).num===e)}greaterThan(e){return this.filter(t=>sc(t).num>e)}lessThan(e){return this.filter(t=>sc(t).num{let r=sc(n).num;return r>e&&r{let n=sc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=sc(e).num);let t=this.map(t=>{let n=sc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=ic(this);return t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},gc={api:function(e){ac(e),mc(e)}};const fc={people:!0,emails:!0,phoneNumbers:!0,places:!0},bc=function(e={}){return!1!==(e=Object.assign({},fc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var vc={api:function(e){e.prototype.redact=bc}},yc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},wc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},kc=function(e){let t=e.clauses(),n=wc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Pc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Ac=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},jc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},xc=function(e){return e.verbs().toInfinitive(),e};const Ec=(e,t)=>"number"==typeof t?e.eq(t):e;var Nc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=kc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ec(this,e).map(e=>(kc(e),Pc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(kc(e),Ac(e)))}toFutureTense(e){return Ec(this,e).map(e=>(kc(e),e=jc(e)))}toInfinitive(e){return Ec(this,e).map(e=>(kc(e),xc(e)))}toNegative(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(kc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ec(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ec(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ec(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=yc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}},Ic=function(e){return e.match("#Honorific+? #Person+")},Tc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Gc="male",Dc="female",Cc={mr:Gc,mrs:Dc,miss:Dc,madam:Dc,king:Gc,queen:Dc,duke:Gc,duchess:Dc,baron:Gc,baroness:Dc,count:Gc,countess:Dc,prince:Gc,princess:Dc,sire:Gc,dame:Dc,lady:Dc,ayatullah:Gc,congressman:Gc,congresswoman:Dc,"first lady":Dc,mx:null};var Oc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Dc;if(n.has("#MaleName"))return Gc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Cc.hasOwnProperty(e))return Cc[e];if(/^her /.test(e))return Dc;if(/^his /.test(e))return Gc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Gc;if(n&&!t)return Dc}return null};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Vc(this,e).map(Tc)}json(e){return Vc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Tc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Oc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ic(this);return t=Vc(t,e),new People(this.document,t.pointer)}},zc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},$c=function(e){e.prototype.places=function(t){let n=zc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Fc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Sc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Hc=function(e){e.prototype.topics=Sc},Mc={api:function(e){Bc(e),$c(e),Fc(e),Hc(e)}},Lc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Wc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Jc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const qc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Kc=function(e){return e.match("#Negative")},Rc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Uc=function(e){let t=e.clone();t.contractions().expand();const n=Wc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:qc(t,n),negative:Kc(t),phrasal:Rc(n)}};const Qc={tense:"PresentTense"},_c={conditional:!0},Zc={tense:"FutureTense"},Yc={progressive:!0},Xc={tense:"PastTense"},eh={complete:!0,progressive:!1},th={passive:!0},nh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},rh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Qc]],["^wanted to #Infinitive$",[Xc]],["^will want to #Infinitive$",[Zc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Xc]],["^#PresentTense #Gerund$",[Qc]],["^#Infinitive #Gerund$",[Qc]],["^will #Infinitive #Gerund$",[Zc]],["^have #PastTense #Gerund$",[Xc]],["^will have #PastTense #Gerund$",[Xc]]],"simple-present":[["^#PresentTense$",[Qc]],["^#Infinitive$",[Qc]]],"simple-past":[["^#PastTense$",[Xc]]],"simple-future":[["^will #Adverb? #Infinitive",[Zc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Qc,Yc]]],"past-progressive":[["^(was|were) #Gerund$",[Xc,Yc]]],"future-progressive":[["^will be #Gerund$",[Zc,Yc]]],"present-perfect":[["^(has|have) #PastTense$",[Xc,eh]]],"past-perfect":[["^had #PastTense$",[Xc,eh]],["^had #PastTense to #Infinitive",[Xc,eh]]],"future-perfect":[["^will have #PastTense$",[Zc,eh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Xc,Yc]]],"past-perfect-progressive":[["^had been #Gerund$",[Xc,Yc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Zc,Yc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Xc,th]],["^(was|were) being (#PastTense|#Participle)",[Xc,th]],["^(had|have) been (#PastTense|#Participle)",[Xc,th]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Qc,th]],["^(is|are|am) being (#PastTense|#Participle)",[Qc,th]],["^has been (#PastTense|#Participle)",[Qc,th]]],"passive-future":[["will have been (#PastTense|#Participle)",[Zc,th,_c]],["will be being? (#PastTense|#Participle)",[Zc,th,_c]]],"present-conditional":[["would be #PastTense",[Qc,_c]]],"past-conditional":[["would have been #PastTense",[Xc,_c]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Zc]]],"auxiliary-past":[["^did #Infinitive$",[Xc,{plural:!1}]],["^used to #Infinitive$",[Xc,eh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Qc,eh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Xc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let ah=[];Object.keys(rh).map(e=>{rh[e].forEach(t=>{ah.push({name:e,match:t[0],data:nh(t[1])})})});var oh=ah,ih=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),sh(r)&&(n.remove(r),r=n.last()),sh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:lh(t,e)}};const ch=e=>e,hh=(e,t)=>{let n=uh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},dh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=uh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ph=function(e,t){let n=uh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},mh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,mh(e)),r&&e.replace(t.root,r),e},fh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),bh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},vh=function(e){return e&&e.isView?e.text("normal"):""},yh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,mh(e))};var wh=function(e){let t=Uc(e);e=e.clone().toView();const n=ih(e,t);return{root:t.root.text(),preAdverbs:bh(t.adverbs.pre),postAdverbs:bh(t.adverbs.post),auxiliary:vh(t.auxiliary),negative:t.negative.found,prefix:vh(t.prefix),infinitive:yh(t.root),grammar:n}};const kh={tags:!0};var Ph=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,mh(r)),i&&e.replace(r,i,kh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ah={tags:!0},jh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,mh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=uh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ah),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=jh.simple(e,t),e=jh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ah),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),n(o,e.model).Participle}},xh={infinitive:jh.simple,"simple-present":jh.simple,"simple-past":ch,"simple-future":jh.both,"present-progressive":e=>(e.replace("are","were",Ah),e.replace("(is|are|am)","was",Ah),e),"past-progressive":ch,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":jh.hasHad,"past-perfect":ch,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=fh(e)),e.remove("have"),e),"present-perfect-progressive":jh.hasHad,"past-perfect-progressive":ch,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ah),e),"passive-past":e=>(e.replace("have","had",Ah),e),"passive-present":e=>(e.replace("(is|are)","was",Ah),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ah),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":ch,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ah),e),"auxiliary-past":ch,"auxiliary-present":e=>(e.replace("(do|does)","did",Ah),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ah):(jh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":ch,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ah),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),jh.simple(e,t),fh(e),e)};var Eh=function(e,t,n){return xh.hasOwnProperty(n)?((e=xh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Nh={tags:!0},Ih=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=dh(e)),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("PresentTense"),e},Th=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,mh(a)),!1===hh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Nh)).not("#Particle").tag("Gerund"),e},Gh={infinitive:Ih,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Ih(e,t);{let t=uh(e).subject;if(hh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Nh)}return e},"simple-past":Ih,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=dh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ih(e,t),e=e.remove("will");return e},"present-progressive":ch,"past-progressive":(e,t)=>{let n=dh(e);return e.replace("(were|was)",n,Nh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ih(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=uh(e).subject;return hh(e)||n.has("i")?((e=gh(e,t)).remove("had"),e):(e.replace("had","has",Nh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":ch,"past-perfect-progressive":e=>e.replace("had","has",Nh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=dh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Nh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":ch,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":ch,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Th(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ph(e);return e.replace(t.auxiliary,n),e}return Th(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":ch,"modal-infinitive":ch,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,mh(r)),a&&(e=e.replace(t.root,a,Nh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return hh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Nh),e.remove("will"),e}};var Dh=function(e,t,n){return Gh.hasOwnProperty(n)?((e=Gh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Ch={tags:!0},Oh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,mh(r)),o&&(e=e.replace(r,o,Ch)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Vh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,mh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Ch),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Bh={infinitive:Oh,"simple-present":Oh,"simple-past":Oh,"simple-future":ch,"present-progressive":Vh,"past-progressive":Vh,"future-progressive":ch,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":ch,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":ch,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":ch,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":ch,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":ch,"modal-past":ch,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Oh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var zh=function(e,t,n){return e.has("will")||e.has("going to")?e:Bh.hasOwnProperty(n)?((e=Bh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const $h={tags:!0};var Fh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,mh(a));let s=r(i,e.model).Gerund;return s&&(s=`${dh(e)} ${s}`,e.replace(a,s,$h)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Sh={tags:!0},Hh=function(e,t){let n=ph(e);return e.prepend(n+" not"),e},Mh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Lh=e=>e.has("(is|was|am|are|will|were|be)"),Wh={"simple-present":(e,t)=>!0===Lh(e)?Mh(e):(e=gh(e,t),e=Hh(e)),"simple-past":(e,t)=>!0===Lh(e)?Mh(e):((e=gh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Lh(e)?Mh(e):Hh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Sh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Hh(e)).replace("wants","want",Sh)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Wh.hasOwnProperty(n))return e=Wh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Lh(e)?Mh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const qh=(e,t)=>"number"==typeof t?e.eq(t):e;var Kh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return qh(this,e).map(Uc)}json(e,t){return qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=wh(t),n},[])}subjects(e){return qh(this,e).map(e=>(Uc(e),uh(e).subject))}adverbs(e){return qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return qh(this,e).filter(e=>!0!==uh(e).plural)}isPlural(e){return qh(this,e).filter(e=>!0===uh(e).plural)}isImperative(e){return qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Ph(e,t,n.form)})}toPresentTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Dh(e,t,n.form)})}toPastTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return zh(e,t,n.form)})}toGerund(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Fh(e,t,n.form)})}conjugate(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Ph(e.clone(),t,n.form).text("normal"),PastTense:Eh(e.clone(),t,n.form).text("normal"),PresentTense:Dh(e.clone(),t,n.form).text("normal"),FutureTense:zh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return qh(this,e).map(e=>{let t=Uc(e),n=ih(e,t);return Jh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Lc(this);return t=qh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(Ll),m.plugin(cu),m.plugin(bu),m.plugin(Cu),m.plugin(gc),m.plugin(vc),m.plugin(Nc),m.plugin(Mc),m.plugin(Kh),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1;var r=k;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),P(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const pe=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===pe.test(r[s].normal)&&([l,u]=r[s].normal.split(pe));let c=ve(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](r,s)),c?(c=ye(c,e),Q(n,[i,s],c),ge(n[i],e,s,c.length)):me.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},xe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ee=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ne=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ee(e,this.world));var r;let a=Te(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ee(e,this.world());return De(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Oe(n,t),Object.keys(r).forEach(e=>{r[e]=Oe(r[e],t)}),{ptrs:n,byGroup:r}},Be=e=>"[object Object]"===Object.prototype.toString.call(e),ze=e=>e&&Be(e)&&!0===e.isView,$e=e=>e&&Be(e)&&!0===e.isNet,Fe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Fe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(ze(e))return e.fullPointer.length>0;if($e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(ze(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(ze(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Fe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},He={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},Le=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},We=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Je={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Je.split=Je.splitAfter;var qe=Je;const Ke=Object.assign({},Se,He,qe);Ke.lookBehind=Ke.before,Ke.lookBefore=Ke.before,Ke.lookAhead=Ke.after,Ke.lookAfter=Ke.after,Ke.notIf=Ke.ifNo;var Ue=function(e){Object.assign(e.prototype,Ke)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ze=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{Ze(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Ye(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ze(e)?r.push(e):r=r.concat(e.split(_e))}),r=Ye(r),r};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),at=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===at(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===at(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===at(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===at(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===at(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===at(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===at(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===at(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let r=n.choices.length-1;n.choices[r]=st(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===at(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===at(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===at(e))return e=lt(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===at(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=rt(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&ht.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},mt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Xe(e);return r=r.map(e=>ct(e,t)),r=dt(r,n),r=pt(r,n),r=mt(r),r};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),xt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>kt.test(e.post)||kt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;var Et=xt;let Nt=function(){};Nt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Et[t.method]&&!0===Et[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,r)):t.choices.some(t=>Nt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=Nt;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Gt(e,e.t).length=r-e.t),e.t=r,!0)};const Ct=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Gt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Bt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},$t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||$t(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Gt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Tt(e,a)){if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Bt(a))return null;if(!0!==e.optional)return null}else if(!St(a))return null}else if(!St(a))return null}else if(!St(a))return null}else if(!Vt(a))return null}else if(!Ot(a))return null}else if(!Dt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Ue,methods:{one:{termMethods:Et,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Yt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Xt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let rn=[],an=0;for(;an<64;)rn[an]=0|4294967296*Math.sin(++an%Math.PI);function on(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(an=i=0;an>4]+rn[i]+~~o[an|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},sn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&cn[o]&&(a[o]=cn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn,pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const mn="";var gn={green:e=>""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(gn.blue("\n ──────")),t.forEach(e=>{console.log(gn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=gn.blue(" │ ")+gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return gn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${gn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const yn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},En=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Nn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},In={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:En,splitAll:Nn}}},Tn=function(e,t){let n=e.concat(t),r=En(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>xn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Dn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>xn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Vn={union:function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Vn.and=Vn.union,Vn.intersection=function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.not=function(e){e=Cn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.difference=Vn.not,Vn.complement=function(){let e=this.all(),t=Gn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Tn(e,[t])}),e=On(e,this.document),this.update(e)};var Bn={methods:In,api:function(e){Object.assign(e.prototype,Vn)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var $n=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Fn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Sn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Hn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=$n(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Fn(a,t.hooks);return o=Sn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Hn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Wn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},qn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Wn.test(t))!function(e,t,n,r){let a=t.split(Wn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),qn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,r))};var Un=Kn,Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),er=e=>(e=e||"").trim(),tr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||_n.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Zn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Qn),t);var t},nr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Yn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},rr=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ar={text:nr,txt:nr,array:rr,flat:rr},or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(nr(e,!0)),null):ar.hasOwnProperty(t)?ar[t](e):e},ir=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=er(e),!sr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(er(e),t)),this;e=er(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=er(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ir(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ir(this.json),or(this.json,e)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(e){let t=tr(e);return new g$1(t)};lr.prototype.plugin=function(e){e(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(e){if(ur.hasOwnProperty(e.id))return ur[e.id];if(ur.hasOwnProperty(e.is))return ur[e.is];let t=e._cache.parents.find(e=>ur[e]);return ur[t]};var hr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:cr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const dr=function(e){return e?"string"==typeof e?[e]:e:[]};var pr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=dr(e[t].children),e[t].not=dr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},mr={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=pr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return lr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return hr(n)}}};const gr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),gr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return gr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},br=function(e){Object.assign(e.prototype,fr)},vr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const yr=new Set(["Auxiliary","Possessive"]);var wr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(yr.has(e)||!t.hasOwnProperty(n))return 1;if(yr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:mr,api:br,lib:vr};const Pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Ar=function(e){let t=[],n=e.split(kr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Mr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Lr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Kr=/^'[0-9]{2}/;var Ur=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Mr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!qr.test(e)?"'"===n&&Kr.test(e)?(n="",t):"":(n="",t)))).replace(Lr,a=>(r=a,Wr.test(a)&&/[sn]['’]$/.test(t)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Rr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Qr=/([A-Z]\.)+[A-Z]?,?$/,_r=/^[A-Z]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(e){return function(e){return!0===Qr.test(e)||!0===Yr.test(e)||!0===_r.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ea=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Rr(r),r=n(r,t),r=Xr(r),e.normal=r},ta={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Dr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Sr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=zr(n),n=Vr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ur(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ea(e,t)}),n})}}}},na={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ra={},aa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ra[t]=!0,aa[t]="Abbreviation",void 0!==e[1]&&(aa[t]=[aa[t],e[1]])})});var oa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ia={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},sa={};Object.keys(ia).forEach((function(e){ia[e].split("").forEach((function(t){sa[t]=e}))}));const la=/\//,ua=/[a-z]\.[a-z]/i,ca=/[0-9]/;var ha=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),la.test(n)&&!ua.test(n)&&!ca.test(n)){let t=n.split(la);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const da=/^\p{Letter}+-\p{Letter}+$/u;var pa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),da.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ma=function(e){let t=0,n=0,r=e.document;for(let e=0;ega(e,ha),machine:e=>ga(e,pa),normal:e=>ga(e,ea),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ya={safe:!0,min:3};var wa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ba},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ya,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(jn),m.extend(Jt),m.extend(Bn),m.extend(wr),m.plugin(we),m.extend(fa),m.plugin(f),m.extend(Ce),m.extend(wa),m.extend(xe),m.extend(Ln);var Pa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ka={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Aa=36,ja="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xa=ja.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==xa[e])return xa[e];let t=0,n=1,r=Aa,a=1;for(;n=0;n--,a*=Aa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Na=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ta(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Va.test(e)?Object.keys(t).forEach(t=>{if(za[t]=e,"Noun|Verb"===e){let e=Oa(t,$a);za[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ba[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ba[e]="Emoticon"),delete Ba[""],delete Ba.null,delete Ba[" "];const Fa="Adjective";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa},afterTags:{Adjective:Fa},beforeWords:{seem:Fa,seemed:Fa,seems:Fa,feel:Fa,feels:Fa,felt:Fa,appear:Fa,appears:Fa,appeared:Fa,also:Fa,over:Fa,under:Fa,too:Fa,it:Fa,but:Fa,still:Fa,really:Fa,quite:Fa,well:Fa,very:Fa,deeply:Fa,profoundly:Fa,extremely:Fa,so:Fa,badly:Fa,mostly:Fa,totally:Fa,awfully:Fa,rather:Fa,nothing:Fa,something:Fa,anything:Fa},afterWords:{too:Fa,also:Fa,or:Fa}};const Ha="Gerund";var Ma={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha}},La={beforeTags:Object.assign({},Sa.beforeTags,Ma.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Sa.afterTags,Ma.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Sa.beforeWords,Ma.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Sa.afterWords,Ma.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wa="Singular";var Ja={beforeTags:{Determiner:Wa,Possessive:Wa,Acronym:Wa,Noun:Wa,Adjective:Wa,PresentTense:Wa,Gerund:Wa,PastTense:Wa,Infinitive:Wa,Date:Wa},afterTags:{Value:Wa,Modal:Wa,Copula:Wa,PresentTense:Wa,PastTense:Wa,Demonym:Wa},beforeWords:{the:Wa,with:Wa,without:Wa,of:Wa,for:Wa,any:Wa,all:Wa,on:Wa,cut:Wa,cuts:Wa,save:Wa,saved:Wa,saves:Wa,make:Wa,makes:Wa,made:Wa,minus:Wa,plus:Wa,than:Wa,another:Wa,versus:Wa,neither:Wa,favorite:Wa,best:Wa,daily:Wa,weekly:Wa,linear:Wa,binary:Wa,mobile:Wa,lexical:Wa,technical:Wa,computer:Wa,scientific:Wa,formal:Wa},afterWords:{of:Wa,system:Wa,aid:Wa,method:Wa,utility:Wa,tool:Wa,reform:Wa,therapy:Wa,philosophy:Wa,room:Wa,authority:Wa,says:Wa,said:Wa,wants:Wa,wanted:Wa}};const qa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ka={beforeTags:Object.assign({},Sa.beforeTags,Ja.beforeTags,qa.beforeTags),afterTags:Object.assign({},Sa.afterTags,Ja.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Ja.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Ja.afterWords)};const Ua={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ra={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Qa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},_a={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Za={beforeTags:Object.assign({},Sa.beforeTags,Ua),afterTags:Object.assign({},Sa.afterTags,Ra),beforeWords:Object.assign({},Sa.beforeWords,Qa),afterWords:Object.assign({},Sa.afterWords,_a)};const Ya="Infinitive";var Xa={beforeTags:{Modal:Ya,Adverb:Ya,Negative:Ya,Plural:Ya},afterTags:{Determiner:Ya,Adverb:Ya,Possessive:Ya,Preposition:Ya},beforeWords:{i:Ya,we:Ya,you:Ya,they:Ya,to:Ya,please:Ya,will:Ya,have:Ya,had:Ya,would:Ya,could:Ya,should:Ya,do:Ya,did:Ya,does:Ya,can:Ya,must:Ya,us:Ya,me:Ya,he:Ya,she:Ya,it:Ya,being:Ya},afterWords:{the:Ya,me:Ya,you:Ya,him:Ya,her:Ya,them:Ya,it:Ya,a:Ya,an:Ya,up:Ya,down:Ya,by:Ya,out:Ya,off:Ya,under:Ya,when:Ya,all:Ya,to:Ya,because:Ya,although:Ya,before:Ya,how:Ya,otherwise:Ya,together:Ya,though:Ya,yet:Ya}};const eo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var to={beforeTags:Object.assign({},Sa.beforeTags,Xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Sa.afterTags,Xa.afterTags,eo.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Xa.afterWords,{to:void 0})};const no={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ro={},ao={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var io={beforeTags:Object.assign({},Ma.beforeTags,Ja.beforeTags,no),afterTags:Object.assign({},Ma.afterTags,Ja.afterTags,ro),beforeWords:Object.assign({},Ma.beforeWords,Ja.beforeWords,ao),afterWords:Object.assign({},Ma.afterWords,Ja.afterWords,oo)},so={beforeTags:Object.assign({},Xa.beforeTags,Ja.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xa.afterTags,Ja.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xa.beforeWords,Ja.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xa.afterWords,Ja.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const lo="Person";var uo={beforeTags:{Honorific:lo,Person:lo,Preposition:lo},afterTags:{Person:lo,ProperNoun:lo,Verb:lo},ownTags:{ProperNoun:lo},beforeWords:{hi:lo,hey:lo,yo:lo,dear:lo,hello:lo},afterWords:{said:lo,says:lo,told:lo,tells:lo,feels:lo,felt:lo,seems:lo,thinks:lo,thought:lo,spends:lo,spendt:lo,plays:lo,played:lo,sing:lo,sang:lo,learn:lo,learned:lo,wants:lo,wanted:lo}};const co="Month",ho={beforeTags:{Date:co,Value:co},afterTags:{Date:co,Value:co},beforeWords:{by:co,in:co,on:co,during:co,after:co,before:co,between:co,until:co,til:co,sometime:co,of:co,this:co,next:co,last:co,previous:co,following:co},afterWords:{sometime:co,in:co,of:co,until:co,the:co}};var po={beforeTags:Object.assign({},uo.beforeTags,ho.beforeTags),afterTags:Object.assign({},uo.afterTags,ho.afterTags),beforeWords:Object.assign({},uo.beforeWords,ho.beforeWords),afterWords:Object.assign({},uo.afterWords,ho.afterWords)};const mo={Place:"Place"},go={Place:"Place",Abbreviation:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vo="Unit";const yo={"Adj|Gerund":La,"Adj|Noun":Ka,"Adj|Past":Za,"Adj|Present":to,"Noun|Verb":so,"Noun|Gerund":io,"Person|Noun":{beforeTags:Object.assign({},Ja.beforeTags,uo.beforeTags),afterTags:Object.assign({},Ja.afterTags,uo.afterTags),beforeWords:Object.assign({},Ja.beforeWords,uo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ja.afterWords,uo.afterWords)},"Person|Date":po,"Person|Verb":{beforeTags:Object.assign({},uo.beforeTags,Xa.beforeTags),afterTags:Object.assign({},uo.afterTags,Xa.afterTags),beforeWords:Object.assign({},uo.beforeWords,Xa.beforeWords),afterWords:Object.assign({},uo.afterWords,Xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},mo,uo.beforeTags),afterTags:Object.assign({},go,uo.afterTags),beforeWords:Object.assign({},fo,uo.beforeWords),afterWords:Object.assign({},bo,uo.afterWords)},"Unit|Noun":{beforeTags:{Value:vo},afterTags:{},beforeWords:{per:vo,every:vo,each:vo,square:vo,cubic:vo,sq:vo,metric:vo},afterWords:{per:vo,squared:vo,cubed:vo,long:vo}}},wo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};yo["Plural|Verb"]={beforeWords:wo(yo["Noun|Verb"].beforeWords,{}),afterWords:wo(yo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wo(yo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wo(yo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Po=yo;const ko="Adjective",Ao="Infinitive",jo="PresentTense",xo="Singular",Eo="PastTense",No="Adverb",Io="Plural",To="Actor",Go="Verb",Do="Noun",Co="LastName",Oo="Modal",Vo="Participle";var Bo=[null,null,{ea:xo,ia:Do,ic:ko,ly:No,"'n":Go,"'t":Go},{oed:Eo,ued:Eo,xed:Eo," so":No,"'ll":Oo,"'re":"Copula",azy:ko,eer:Do,end:Go,ped:Eo,ffy:ko,ify:Ao,ing:"Gerund",ize:Ao,ibe:Ao,lar:ko,mum:ko,nes:jo,nny:ko,ous:ko,que:ko,rol:xo,sis:xo,ogy:xo,oid:xo,ian:xo,zes:jo,eld:Eo,ken:Vo,ven:Vo,ten:Vo,ect:Ao,ict:Ao,ign:Ao,ful:ko,bal:ko},{amed:Eo,aped:Eo,ched:Eo,lked:Eo,rked:Eo,reed:Eo,nded:Eo,mned:ko,cted:Eo,dged:Eo,ield:xo,akis:Co,cede:Ao,chuk:Co,czyk:Co,ects:jo,ends:Go,enko:Co,ette:xo,wner:xo,fies:jo,fore:No,gate:Ao,gone:ko,ices:Io,ints:Io,ruct:Ao,ines:Io,ions:Io,less:ko,llen:ko,made:ko,nsen:Co,oses:jo,ould:Oo,some:ko,sson:Co,tion:xo,tage:Do,ique:xo,tive:ko,tors:Do,vice:xo,lier:xo,fier:xo,wned:Eo,gent:xo,tist:xo,pist:xo,rist:xo,mist:xo,yist:xo,vist:xo,lite:xo,site:xo,rite:xo,mite:xo,bite:xo,mate:xo,date:xo,ndal:xo,vent:xo,uist:xo,gist:xo,note:xo,cide:xo,wide:ko,vide:Ao,ract:Ao,duce:Ao,pose:Ao,eive:Ao,lyze:Ao,lyse:Ao,iant:ko,nary:ko},{elist:xo,holic:xo,phite:xo,tized:Eo,urned:Eo,eased:Eo,ances:Io,bound:ko,ettes:Io,fully:No,ishes:jo,ities:Io,marek:Co,nssen:Co,ology:Do,osome:xo,tment:xo,ports:Io,rough:ko,tches:jo,tieth:"Ordinal",tures:Io,wards:No,where:No,archy:Do,pathy:Do,opoly:Do,embly:Do,phate:Do,ndent:xo,scent:xo,onist:xo,anist:xo,alist:xo,olist:xo,icist:xo,ounce:Ao,iable:ko,borne:ko,gnant:ko,inant:ko,igent:ko,atory:ko,rient:xo,dient:xo},{auskas:Co,parent:xo,cedent:xo,ionary:xo,cklist:xo,keeper:To,logist:To,teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const zo="Adjective",$o="Noun",Fo="Verb";var So=[null,null,{},{neo:$o,bio:$o,"de-":Fo,"re-":Fo,"un-":Fo},{anti:$o,auto:$o,faux:zo,hexa:$o,kilo:$o,mono:$o,nano:$o,octa:$o,poly:$o,semi:zo,tele:$o,"pro-":zo,"mis-":Fo,"dis-":Fo,"pre-":zo},{anglo:$o,centi:$o,ethno:$o,ferro:$o,grand:$o,hepta:$o,hydro:$o,intro:$o,macro:$o,micro:$o,milli:$o,nitro:$o,penta:$o,quasi:zo,radio:$o,tetra:$o,"omni-":zo,"post-":zo},{pseudo:zo,"extra-":zo,"hyper-":zo,"inter-":zo,"intra-":zo,"deca-":zo},{electro:$o}];const Ho="Adjective",Mo="Infinitive",Lo="PresentTense",Wo="Singular",Jo="PastTense",qo="Adverb",Ko="Expression",Uo="Actor",Ro="Verb",Qo="Noun",_o="LastName";var Zo={a:[[/.[aeiou]na$/,Qo,"tuna"],[/.[oau][wvl]ska$/,_o],[/.[^aeiou]ica$/,Wo,"harmonica"],[/^([hyj]a+)+$/,Ko,"haha"]],c:[[/.[^aeiou]ic$/,Ho]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Jo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Jo,"rammed"],[/.[aeiou][sg]hed$/,Jo,"gushed"],[/.[aeiou]red$/,Jo,"hired"],[/.[aeiou]r?ried$/,Jo,"hurried"],[/[^aeiou]ard$/,Wo,"steward"],[/[aeiou][^aeiou]id$/,Ho,""],[/.[vrl]id$/,Ho,"livid"],[/..led$/,Jo,"hurled"],[/.[iao]sed$/,Jo,""],[/[aeiou]n?[cs]ed$/,Jo,""],[/[aeiou][rl]?[mnf]ed$/,Jo,""],[/[aeiou][ns]?c?ked$/,Jo,"bunked"],[/[aeiou]gned$/,Jo],[/[aeiou][nl]?ged$/,Jo],[/.[tdbwxyz]ed$/,Jo],[/[^aeiou][aeiou][tvx]ed$/,Jo],[/.[cdflmnprstv]ied$/,Jo,"emptied"]],e:[[/.[lnr]ize$/,Mo,"antagonize"],[/.[^aeiou]ise$/,Mo,"antagonise"],[/.[aeiou]te$/,Mo,"bite"],[/.[^aeiou][ai]ble$/,Ho,"fixable"],[/.[^aeiou]eable$/,Ho,"maleable"],[/.[ts]ive$/,Ho,"festive"],[/[a-z]-like$/,Ho,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ho,"cornish"],[/.v[iy]ch$/,_o,"..ovich"],[/^ug?h+$/,Ko,"ughh"],[/^uh[ -]?oh$/,Ko,"uhoh"],[/[a-z]-ish$/,Ho,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,_o,"polish-male"]],k:[[/^(k){2}$/,Ko,"kkkk"]],l:[[/.[gl]ial$/,Ho,"familial"],[/.[^aeiou]ful$/,Ho,"fitful"],[/.[nrtumcd]al$/,Ho,"natal"],[/.[^aeiou][ei]al$/,Ho,"familial"]],m:[[/.[^aeiou]ium$/,Wo,"magnesium"],[/[^aeiou]ism$/,Wo,"schism"],[/^[hu]m+$/,Ko,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ho,"republican"],[/[^aeiou]ician$/,Uo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ko,"noooo"],[/^(yo)+$/,Ko,"yoo"],[/^wo{2,}[pt]?$/,Ko,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Wo],[/[^i]fer$/,Mo],[/.[^aeiou][ao]pher$/,Uo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ho],[/[aeiou].*ist$/,Ho],[/^[a-z]et$/,Ro]],s:[[/.[^aeiou]ises$/,Lo],[/.[rln]ates$/,Lo],[/.[^z]ens$/,Ro],[/.[lstrn]us$/,Wo],[/.[aeiou]sks$/,Lo],[/.[aeiou]kes$/,Lo],[/[aeiou][^aeiou]is$/,Wo],[/[a-z]'s$/,Qo],[/^yes+$/,Ko]],v:[[/.[^aeiou][ai][kln]ov$/,_o]],y:[[/.[cts]hy$/,Ho],[/.[st]ty$/,Ho],[/.[tnl]ary$/,Ho],[/.[oe]ry$/,Wo],[/[rdntkbhs]ly$/,qo],[/.(gg|bb|zz)ly$/,Ho],[/...lly$/,qo],[/.[gk]y$/,Ho],[/[bszmp]{2}y$/,Ho],[/.[ai]my$/,Ho],[/[ea]{2}zy$/,Ho],[/.[^aeiou]ity$/,Wo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ri={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ai={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ii);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ii,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},di=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const pi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),mi=hi(ai),gi=hi(ni),fi=hi(ri),bi=di(pi),vi=di(mi),yi=di(gi),wi=di(fi),Pi=hi(ti),ki=hi(oi);var Ai={fromPast:pi,fromPresent:mi,fromGerund:gi,fromParticiple:fi,toPast:bi,toPresent:vi,toGerund:yi,toParticiple:wi,toComparative:Pi,toSuperlative:ki,fromComparative:di(Pi),fromSuperlative:di(ki)},ji=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),xi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Ei=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ni[t].forEach(n=>e[n]=t),e),{});var Ii=Ni,Ti=function(e){let t=e.substring(e.length-3);if(!0===Ii.hasOwnProperty(t))return Ii[t];let n=e.substring(e.length-2);return!0===Ii.hasOwnProperty(n)?Ii[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Gi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ti(e)),Gi.hasOwnProperty(e))c=Gi[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,r);else if("PresentTense"===n)c=si(l,a);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ci=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,r),Gerund:si(i,a),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Oi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Vi="ically",Bi=new Set(["analyt"+Vi,"chem"+Vi,"class"+Vi,"clin"+Vi,"crit"+Vi,"ecolog"+Vi,"electr"+Vi,"empir"+Vi,"frant"+Vi,"grammat"+Vi,"ident"+Vi,"ideolog"+Vi,"log"+Vi,"mag"+Vi,"mathemat"+Vi,"mechan"+Vi,"med"+Vi,"method"+Vi,"method"+Vi,"mus"+Vi,"phys"+Vi,"phys"+Vi,"polit"+Vi,"pract"+Vi,"rad"+Vi,"satir"+Vi,"statist"+Vi,"techn"+Vi,"technolog"+Vi,"theoret"+Vi,"typ"+Vi,"vert"+Vi,"whims"+Vi]),zi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],$i=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Fi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?Bi.has(e)?e.replace(/ically/,"ical"):$i.has(e)?null:Fi.hasOwnProperty(e)?Fi[e]:Oi(e,zi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Mi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Li=function(e){if(Mi.hasOwnProperty(e))return Mi[e];let t=Oi(e,Hi);return t||e+"ly"};const Wi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ji={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},qi=new Set(["terrible","annoying"]),Ki=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Qi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Oa,nounToSingular:Ei,verbToInfinitive:Di,getTense:Ti,verbConjugate:Ci,adjToSuperlative:Ki,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Li,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(qi.has(e))return null;let t=Oi(e,Wi);return t||e+"ness"}}}},_i=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Zi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(r,"Infinitive","Verb"),Object.assign(s,l),l=Zi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zi(o,"Adjective","Superlative"),Object.assign(s,l),l=Zi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:Qi};let{lex:r,_multi:a}=Qi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ns=function(e,t,n){let r=Ci(e,Xi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(a,r,!1),"Adj|Present"===o&&(ns(a,r,!0),function(e,t,n){let r=Ki(e,n);t[r]=t[r]||"Superlative";let a=Ui(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(a,Xi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(a,Xi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let as={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:Pa,models:Ai,suffixPatterns:Bo,prefixPatterns:So,endsWith:Zo,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:za,clues:Po,uncountable:{},orgWords:ji}};as=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=rs(e.two.switches,e),e=Yi(e),e=_i(e)}(as);var os=as;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(is.test(a.normal)){let e=a.normal.replace(is,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ls=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const ps=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ms=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ti(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(r)};const gs=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,bs=["Date","Month","WeekDay","Unit"],vs=/^[IVXLCDM]{2,}$/,ys=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Ps=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===gs.test(o)&&!1===fs.test(o)?bs.find(e=>r.tags.has(e))?null:(ms(e,t,n),r.tags.has("Noun")||r.tags.clear(),ls(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&vs.test(o)&&ys.test(o)&&!ws[r.normal]?(ls(r,"RomanNumeral","2-xvii"),!0):null};const ks=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var As=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ks(r.normal,n.two.suffixPatterns);if(null!==e)return ls(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ks(r.implicit,n.two.suffixPatterns),null!==e))return ls(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const js=/['‘’‛‵′`´]/,xs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ls(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Is=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ts=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Is.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ds=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ts(a)||Ts(o))return ls(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gs(a)||Gs(o))return ls(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return ls(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Vs=/^[A-Z-]+$/,Bs=/([A-Z]\.)+[A-Z]?,?$/,zs=/[A-Z]{2,}('s|,)?$/,$s=/([a-z]\.)+[a-z]\.?$/,Fs={I:!0,A:!0};var Ss=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Vs.test(n)||n.length>5||Fs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Bs.test(n)&&!0!==$s.test(n)&&!0!==Os.test(n)&&!0!==zs.test(n))}(r,n)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Fs.hasOwnProperty(r.text)&&Os.test(r.text)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ls(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Vs.test(r.text)&&r.text.length<=6?(ls(r,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ms=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ls=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],a),l=l||Hs(e[t+1],o),l=l||Ms(e[t-1],r),l=l||Ms(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ms(e,t,n),e[t].confidence=.2,!0}return null};const Ws=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Js=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ws(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ws(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},qs=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ms(e,t,n),e[t].confidence=.1)};const Ks=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>Ks(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t&&Ks(e,t)};const Qs="undefined"!=typeof process&&process.env?process.env:self.env||{},_s=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Qs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ys=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Qs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Es,checkCase:Ps,checkPrefix:Ns,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Ls,orgWords:Js,nounFallback:qs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(_s.test(l)&&!o[l]&&(l=l.replace(_s,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Zs(e[t+1],n.afterWords);return o=o||Zs(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,a),o=o||Ys(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Rs[o]&&(u=Rs[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Qs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},al={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vl=/'/;var yl=function(e,t){let n=e[t].normal.split(vl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},kl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(Pl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===kl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const jl=/'/,xl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},El={d:(e,t)=>yl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bl(e,t)},Nl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Il={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===jl.test(r[o].normal)&&([,i]=r[o].normal.split(jl));let s=null;El.hasOwnProperty(i)&&(s=El[i](r,o,t)),s&&(s=Nl(s,e),gl(n,[a,o],s),xl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ml.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=pl},hooks:["contractionTwo"]};const Tl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Gl=["i","we","they"];let Dl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Tl+" #Person",tag:"Person",reason:"randy-smith"},{match:Tl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Tl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Cl=Cl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Dl}},hooks:["postTagger"]},Vl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Bl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Vl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},zl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},$l=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?zl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Fl={api:function(e){e.prototype.swap=$l}};m.plugin(cl),m.plugin(Il),m.plugin(Ol),m.plugin(Bl),m.plugin(Fl);var Sl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Hl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ml={this:"Noun",then:"Pivot"};var Ll=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},_l={compute:{chunks:function(e){const{document:t,world:n}=e;Ll(t),Wl(t),Kl(e,t,n),Rl(t),Ql(t)}},api:function(e){e.prototype.chunks=Hl,e.prototype.clauses=Sl},hooks:["chunks"]};const Zl=/'s$/;var Yl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Xl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Xl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const ru={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},au=RegExp("("+Object.keys(ru).join("|")+")"),ou=RegExp("("+Object.values(ru).join("|")+")"),iu=function(e,t){const n=e[t].pre.match(au)[0]||"";if(!n||!ru[n])return null;const r=ru[n];for(;t{e[0].pre=e[0].pre.replace(au,"");let t=e[e.length-1];t.post=t.post.replace(ou,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const lu=/\./g;var uu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},cu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const hu=(e,t)=>"number"==typeof t?e.eq(t):e,du=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var pu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=du(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=hu(t,e),new Adjectives(t.document,t.pointer)}};const mu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},gu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let fu=[["emojis","emoji"],["atmentions","atMentions"]];var bu=function(e){gu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=mu,fu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},vu={api:function(e){bu(e),Yl(e),nu(e),su(e),pu(e),cu(e),uu(e)}};const yu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var wu={case:e=>{yu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;yu(e,e=>e.text=n(e.text,t))},whitespace:e=>{yu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{yu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),ku="unicode|punctuation|whitespace|acronyms",Au="|case|contractions|parentheses|quotations|emoji|honorifics",ju={light:Pu(ku),medium:Pu(ku+Au),heavy:Pu(ku+Au+"|possessives|adverbs|nouns|verbs")};var xu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ju[e]),Object.keys(e).forEach(t=>{wu.hasOwnProperty(t)&&wu[t](this,e[t])}),this}}},Eu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Nu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Iu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Gu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Tu(e,t),isSubordinate:Iu(e),root:t}};const Du=e=>e.text(),Cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Ou=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Vu=function(e){let t=Gu(e);return{root:Du(t.root),number:Ou(t.number),determiner:Du(t.determiner),adjectives:Cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Bu={tags:!0};var zu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Bu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Bu),e};const $u={tags:!0};var Fu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,$u).tag("Singular","toPlural"),e};const Su=(e,t)=>"number"==typeof t?e.eq(t):e;var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Su(this,e).map(Gu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Vu(t)),n},[])}isPlural(e){let t=this.filter(e=>Gu(e).isPlural);return Su(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Gu(e).adjectives;n.found&&(t=t.concat(n))}),Su(t,e)}toPlural(e){return Su(this,e).map(e=>zu(e,Gu(e)))}toSingular(e){return Su(this,e).map(e=>{let t=Gu(e);return Fu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Eu(this);return t=Su(t,e),new Nouns(this.document,t.pointer)}}},Mu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Lu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Wu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Wu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Wu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},qu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Uu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ru={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Qu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var _u=function(e){if(!0===Ru.hasOwnProperty(e))return Ru[e];if("a"===e||"an"===e)return 1;const t=Lu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Yu(n),r=Yu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Yu(n);let a=r.text("reduced");return Zu.test(a)&&(a=a.replace(Zu,""),r=r.replaceWith(a)),r=Xu.hasOwnProperty(a)?Xu[a]:Yu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Yu(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},tc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const nc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],rc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ac=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],oc=function(e){let t=[];if(e>100)return t;for(let n=0;n=nc[n][1]&&(e-=nc[n][1],t.push(nc[n][0]));return rc[e]&&t.push(rc[e]),t};var ic=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=tc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ac.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(oc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=tc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},sc=function(e){return e.numerator&&e.denominator?`${ic({num:e.numerator})} out of ${ic({num:e.denominator})}`:""};const lc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var uc=e=>{let t=ic(e).split(" "),n=t[t.length-1];return lc.hasOwnProperty(n)?t[t.length-1]=lc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},cc=function(e){if(!e.numerator||!e.denominator)return"";let t=ic({num:e.numerator}),n=uc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return hc(this,e).map(ec)}get(e){return hc(this,e).map(ec)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(t);return n.fraction=r,n},[])}toDecimal(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return hc(this,e).forEach(e=>{let t=ec(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=cc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=sc(t);e.replaceWith(n)}),this}toPercentage(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Mu(this);return t=hc(t,e),new Fractions(this.document,t.pointer)}};const pc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var mc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+pc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+pc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+pc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+pc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${pc})`),r=e.has("("+pc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+pc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+pc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},gc=function(e){if("string"==typeof e)return{num:_u(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=ec(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=_u(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},fc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=tc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const bc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},vc={"%":"percent","°":"degrees"};var yc=function(e){let t={suffix:"",prefix:e.prefix};return bc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+bc[e.prefix],t.prefix=""),vc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+vc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},wc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=yc(e);return t+uc(e)+n}if("Ordinal"===t)return e.prefix+fc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=yc(e);return t+ic(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e;var kc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Pc(this,e).map(gc)}get(e){return Pc(this,e).map(gc).map(e=>e.num)}json(e){return Pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=gc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=gc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=wc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=gc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=wc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>gc(t).num===e)}greaterThan(e){return this.filter(t=>gc(t).num>e)}lessThan(e){return this.filter(t=>gc(t).num{let r=gc(n).num;return r>e&&r{let n=gc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=gc(e).num);let t=this.map(t=>{let n=gc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=mc(this);return t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Ac={api:function(e){dc(e),kc(e)}};const jc={people:!0,emails:!0,phoneNumbers:!0,places:!0},xc=function(e={}){return!1!==(e=Object.assign({},jc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Ec={api:function(e){e.prototype.redact=xc}},Nc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Ic=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Tc=function(e){let t=e.clauses(),n=Ic(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Gc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Cc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},Oc=function(e){return e.verbs().toInfinitive(),e};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Tc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Vc(this,e).map(e=>(Tc(e),Gc(e)))}toPresentTense(e){return Vc(this,e).map(e=>(Tc(e),Dc(e)))}toFutureTense(e){return Vc(this,e).map(e=>(Tc(e),e=Cc(e)))}toInfinitive(e){return Vc(this,e).map(e=>(Tc(e),Oc(e)))}toNegative(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Vc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Vc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Vc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Nc(this);return Vc(t,e)}};Object.assign(e.prototype,t)}},zc=function(e){return e.match("#Honorific+? #Person+")},$c=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Fc="male",Sc="female",Hc={mr:Fc,mrs:Sc,miss:Sc,madam:Sc,king:Fc,queen:Sc,duke:Fc,duchess:Sc,baron:Fc,baroness:Sc,count:Fc,countess:Sc,prince:Fc,princess:Sc,sire:Fc,dame:Sc,lady:Sc,ayatullah:Fc,congressman:Fc,congresswoman:Sc,"first lady":Sc,mx:null};var Mc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Sc;if(n.has("#MaleName"))return Fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Hc.hasOwnProperty(e))return Hc[e];if(/^her /.test(e))return Sc;if(/^his /.test(e))return Fc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Fc;if(n&&!t)return Sc}return null};const Lc=(e,t)=>"number"==typeof t?e.eq(t):e;var Wc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Lc(this,e).map($c)}json(e){return Lc(this,e).map(t=>{let n=t.toView().json(e)[0],r=$c(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Mc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=zc(this);return t=Lc(t,e),new People(this.document,t.pointer)}},Jc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},qc=function(e){e.prototype.places=function(t){let n=Jc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Kc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Uc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Rc=function(e){e.prototype.topics=Uc},Qc={api:function(e){Wc(e),qc(e),Kc(e),Rc(e)}},_c=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Zc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Yc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Xc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},eh=function(e){return e.match("#Negative")},th=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var nh=function(e){let t=e.clone();t.contractions().expand();const n=Zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Yc(t,n),auxiliary:Xc(t,n),negative:eh(t),phrasal:th(n)}};const rh={tense:"PresentTense"},ah={conditional:!0},oh={tense:"FutureTense"},ih={progressive:!0},sh={tense:"PastTense"},lh={complete:!0,progressive:!1},uh={passive:!0},ch=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},hh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[rh]],["^wanted to #Infinitive$",[sh]],["^will want to #Infinitive$",[oh]]],"gerund-phrase":[["^#PastTense #Gerund$",[sh]],["^#PresentTense #Gerund$",[rh]],["^#Infinitive #Gerund$",[rh]],["^will #Infinitive #Gerund$",[oh]],["^have #PastTense #Gerund$",[sh]],["^will have #PastTense #Gerund$",[sh]]],"simple-present":[["^#PresentTense$",[rh]],["^#Infinitive$",[rh]]],"simple-past":[["^#PastTense$",[sh]]],"simple-future":[["^will #Adverb? #Infinitive",[oh]]],"present-progressive":[["^(is|are|am) #Gerund$",[rh,ih]]],"past-progressive":[["^(was|were) #Gerund$",[sh,ih]]],"future-progressive":[["^will be #Gerund$",[oh,ih]]],"present-perfect":[["^(has|have) #PastTense$",[sh,lh]]],"past-perfect":[["^had #PastTense$",[sh,lh]],["^had #PastTense to #Infinitive",[sh,lh]]],"future-perfect":[["^will have #PastTense$",[oh,lh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[sh,ih]]],"past-perfect-progressive":[["^had been #Gerund$",[sh,ih]]],"future-perfect-progressive":[["^will have been #Gerund$",[oh,ih]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[sh,uh]],["^(was|were) being (#PastTense|#Participle)",[sh,uh]],["^(had|have) been (#PastTense|#Participle)",[sh,uh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[rh,uh]],["^(is|are|am) being (#PastTense|#Participle)",[rh,uh]],["^has been (#PastTense|#Participle)",[rh,uh]]],"passive-future":[["will have been (#PastTense|#Participle)",[oh,uh,ah]],["will be being? (#PastTense|#Participle)",[oh,uh,ah]]],"present-conditional":[["would be #PastTense",[rh,ah]]],"past-conditional":[["would have been #PastTense",[sh,ah]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[oh]]],"auxiliary-past":[["^did #Infinitive$",[sh,{plural:!1}]],["^used to #Infinitive$",[sh,lh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[rh,lh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[sh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let dh=[];Object.keys(hh).map(e=>{hh[e].forEach(t=>{dh.push({name:e,match:t[0],data:ch(t[1])})})});var ph=dh,mh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),gh(r)&&(n.remove(r),r=n.last()),gh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:fh(t,e)}};const vh=e=>e,yh=(e,t)=>{let n=bh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},wh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=bh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Ph=function(e,t){let n=bh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},kh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,kh(e)),r&&e.replace(t.root,r),e},jh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),xh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Eh=function(e){return e&&e.isView?e.text("normal"):""},Nh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,kh(e))};var Ih=function(e){let t=nh(e);e=e.clone().toView();const n=mh(e,t);return{root:t.root.text(),preAdverbs:xh(t.adverbs.pre),postAdverbs:xh(t.adverbs.post),auxiliary:Eh(t.auxiliary),negative:t.negative.found,prefix:Eh(t.prefix),infinitive:Nh(t.root),grammar:n}};const Th={tags:!0};var Gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,kh(r)),i&&e.replace(r,i,Th).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Dh={tags:!0},Ch={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,kh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=bh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ch.simple(e,t),e=Ch.noAux(e,t))},hasHad:e=>(e.replace("has","had",Dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),n(o,e.model).Participle}},Oh={infinitive:Ch.simple,"simple-present":Ch.simple,"simple-past":vh,"simple-future":Ch.both,"present-progressive":e=>(e.replace("are","were",Dh),e.replace("(is|are|am)","was",Dh),e),"past-progressive":vh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ch.hasHad,"past-perfect":vh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=jh(e)),e.remove("have"),e),"present-perfect-progressive":Ch.hasHad,"past-perfect-progressive":vh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Dh),e),"passive-past":e=>(e.replace("have","had",Dh),e),"passive-present":e=>(e.replace("(is|are)","was",Dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":vh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Dh),e),"auxiliary-past":vh,"auxiliary-present":e=>(e.replace("(do|does)","did",Dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Dh):(Ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":vh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch.simple(e,t),jh(e),e)};var Vh=function(e,t,n){return Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Bh={tags:!0},zh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=wh(e)),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("PresentTense"),e},$h=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("Gerund"),e},Fh={infinitive:zh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return zh(e,t);{let t=bh(e).subject;if(yh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Bh)}return e},"simple-past":zh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=wh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else zh(e,t),e=e.remove("will");return e},"present-progressive":vh,"past-progressive":(e,t)=>{let n=wh(e);return e.replace("(were|was)",n,Bh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(zh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=bh(e).subject;return yh(e)||n.has("i")?((e=Ah(e,t)).remove("had"),e):(e.replace("had","has",Bh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":vh,"past-perfect-progressive":e=>e.replace("had","has",Bh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=wh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Bh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":vh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":vh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>($h(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Ph(e);return e.replace(t.auxiliary,n),e}return $h(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":vh,"modal-infinitive":vh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,kh(r)),a&&(e=e.replace(t.root,a,Bh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),zh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return yh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Bh),e.remove("will"),e}};var Sh=function(e,t,n){return Fh.hasOwnProperty(n)?((e=Fh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hh={tags:!0},Mh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,kh(r)),o&&(e=e.replace(r,o,Hh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Lh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,kh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Hh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Wh={infinitive:Mh,"simple-present":Mh,"simple-past":Mh,"simple-future":vh,"present-progressive":Lh,"past-progressive":Lh,"future-progressive":vh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":vh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":vh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":vh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":vh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":vh,"modal-past":vh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Mh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jh=function(e,t,n){return e.has("will")||e.has("going to")?e:Wh.hasOwnProperty(n)?((e=Wh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qh={tags:!0};var Kh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,kh(a));let s=r(i,e.model).Gerund;return s&&(s=`${wh(e)} ${s}`,e.replace(a,s,qh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Uh={tags:!0},Rh=function(e,t){let n=Ph(e);return e.prepend(n+" not"),e},Qh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},_h=e=>e.has("(is|was|am|are|will|were|be)"),Zh={"simple-present":(e,t)=>!0===_h(e)?Qh(e):(e=Ah(e,t),e=Rh(e)),"simple-past":(e,t)=>!0===_h(e)?Qh(e):((e=Ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_h(e)?Qh(e):Rh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Uh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Rh(e)).replace("wants","want",Uh)};var Yh=function(e,t,n){if(e.has("#Negative"))return e;if(Zh.hasOwnProperty(n))return e=Zh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_h(e)?Qh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Xh=(e,t)=>"number"==typeof t?e.eq(t):e;var ed={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Xh(this,e).map(nh)}json(e,t){return Xh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ih(t),n},[])}subjects(e){return Xh(this,e).map(e=>(nh(e),bh(e).subject))}adverbs(e){return Xh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Xh(this,e).filter(e=>!0!==bh(e).plural)}isPlural(e){return Xh(this,e).filter(e=>!0===bh(e).plural)}isImperative(e){return Xh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Gh(e,t,n.form)})}toPresentTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Sh(e,t,n.form)})}toPastTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Vh(e,t,n.form)})}toFutureTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Jh(e,t,n.form)})}toGerund(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Kh(e,t,n.form)})}conjugate(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Gh(e.clone(),t,n.form).text("normal"),PastTense:Vh(e.clone(),t,n.form).text("normal"),PresentTense:Sh(e.clone(),t,n.form).text("normal"),FutureTense:Jh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Yh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=_c(this);return t=Xh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(_l),m.plugin(vu),m.plugin(xu),m.plugin(Hu),m.plugin(Ac),m.plugin(Ec),m.plugin(Bc),m.plugin(Qc),m.plugin(ed),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index b0afb832f..ab278a439 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1,2 +1,2 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},k=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||v(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),b(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];P+=1;var r=P;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const N=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},E=e=>"[object Array]"===Object.prototype.toString.call(e),x=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(N(t.update([u]).firstTerm()),k(h,u,d,r)):(N(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},D.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var C=D;var O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z;var F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return b(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}};var q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var R={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},pe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ge=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(r[s].normal)&&([l,u]=r[s].normal.split(ce));let c=ge(o,r[s],l,u);!c&&pe.hasOwnProperty(u)&&(c=pe[u](r,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](r,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(r[s].normal)&&(c=ue(r,s),c&&(c=fe(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var be=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ye.test(l)){let e=l.replace(ye,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var Ae=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const je=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ie=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};var Te={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ae(e,this.world));var r;let a=Ee(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ae(e,this.world());return Ie(t)}}};const Ge=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},De=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ge(n,t),Object.keys(r).forEach(e=>{r[e]=Ge(r[e],t)}),{ptrs:n,byGroup:r}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Ve=e=>e&&Ce(e)&&!0===e.isNet;var Be={matchOne:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Ve(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.intersection(e);if(Ve(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=De(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Oe(e)){return e.fullPointer.length>0}if(Ve(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Ve(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var ze={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const $e=function(e,t){return[e[0],e[1],t[2]]},Fe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Se=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push($e(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Fe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push($e(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Me=He;const Le=Object.assign({},Be,ze,Me);Le.lookBehind=Le.before,Le.lookBefore=Le.before,Le.lookAhead=Le.after,Le.lookAfter=Le.after,Le.notIf=Le.ifNo;var We=function(e){Object.assign(e.prototype,Le)};const Je=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ke=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(Je),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(qe))}),n=Ue(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?r.push(e):r=r.concat(e.split(Ke))}),r=Ue(r),r};const _e=/\{([0-9]+)?(, *[0-9]*)?\}/,Ze=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),rt=e=>e.substring(0,e.length-1),at=function(e){return e=nt(e),e=rt(e)},ot=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===et(e)&&(n.end=!0,e=rt(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=rt(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=rt(e)),"?"===et(e)&&(n.optional=!0,e=rt(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=at(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){Ze.test(e)?(n.choices=e.split(Ze),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=rt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=at(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=at(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=at(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=at(e),n.switch=e,n}return!0===_e.test(e)&&(e=e.replace(_e,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&st.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var ut=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Qe(e);return r=r.map(e=>it(e,t)),r=lt(r,n),r=ut(r),r};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),yt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||gt.test(e.post),hasComma:e=>bt(e,","),hasPeriod:e=>!0===bt(e,".")&&!1===bt(e,"..."),hasExclamation:e=>bt(e,"!"),hasQuestionMark:e=>bt(e,"?")||bt(e,"¿"),hasEllipses:e=>bt(e,"..")||bt(e,"…")||yt(e,"..")||yt(e,"…"),hasSemicolon:e=>bt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>vt.test(e.post)||vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(pt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,r)):t.choices.some(t=>Pt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var At=Pt;const jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Nt(e,e.t).length=r-e.t}return e.t=r,!0};const xt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&At(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Nt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Gt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==At(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var Dt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=At(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ct=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Vt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Dt(e),r.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ct(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Nt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Bt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==jt(e,a))if(!0!==At(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Gt(a))return null}if(!0!==e.optional)return null}else{if(!Vt(a))return null}else{if(!Vt(a))return null}else{if(!Vt(a))return null}else{if(!Tt(a))return null}else{if(!It(a))return null}else{if(!Et(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var zt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const $t=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Ft=function(e,t,n){let r=Bt(e,t,0,e.length);return r?(r=$t(r,n),r):null};var St={api:We,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Ft(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=zt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Mt=/^#./,Lt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Wt={html:function(e){let{starts:t,ends:n}=Lt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(qt,""),Rt.test(a)&&(a=" "),a=a.replace(Kt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(qt,""),a="-"===a?" ":a.replace(Jt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Ut.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},_t={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};_t.clean=_t.normal,_t.reduced=_t.root;var Zt=_t;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const rn=function(e,t){return Object.assign({},e,t)},an={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,rn(Zt.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,rn(Zt.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,rn(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=an.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};an.sentences=an.sentence,an.clean=an.normal,an.reduced=an.root;const on={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},tn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&an[o]&&(a[o]=an[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on;var ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var un={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(un.blue("\n ──────")),t.forEach(e=>{console.log(un.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=un.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=un.blue(" │ ")+un.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return un[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var hn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(un.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(un.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(un.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(un.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${un.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const pn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var mn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&Zt.hasOwnProperty(e)?t=Object.assign({},Zt[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},wn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var kn=function(e,t){let n=wn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var Pn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:wn,splitAll:kn}}};var An=function(e,t){let n=e.concat(t),r=wn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>yn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Nn=function(e,t){let n=wn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>yn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},xn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},In={union:function(e){e=En(e,this);let t=An(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)}};In.and=In.union,In.intersection=function(e){e=En(e,this);let t=Nn(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)},In.not=function(e){e=En(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=xn(t,this.document),this.toView(t)},In.difference=In.not,In.complement=function(){let e=this.all(),t=jn(e.fullPointer,this.fullPointer);return t=xn(t,this.document),this.toView(t)},In.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=xn(e,this.document),this.update(e)};var Tn={methods:Pn,api:function(e){Object.assign(e.prototype,In)}};const Gn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Dn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Gn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Gn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Gn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Cn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var On=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Vn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Bn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Dn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Cn(a,t.hooks);return o=On(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Vn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Bn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,a)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const $n=/ /,Fn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Sn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),$n.test(t))!function(e,t,n,r){let a=t.split($n);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Sn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nHn(e,t,n,r))};var Mn=Hn;var Ln=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Wn({id:e})),t}return[Wn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Rn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Qn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Jn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:qn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Wn({});return e.forEach(e=>{if((e=Wn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Kn(t=e).forEach(Wn),t);var t},_n=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Kn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},Zn=function(e){let t=Kn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Yn={text:_n,txt:_n,array:Zn,flat:Zn},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(_n(e,!0)),null):Yn.hasOwnProperty(t)?Yn[t](e):e},er=e=>{Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},tr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Un(e),!tr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Wn({});return new g$1(t)}add(e,t={}){if(Rn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Wn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Un(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Kn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Kn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Kn(this.json)}fillDown(){var e;return e=this.json,Kn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Rn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){er(this.json);let e=Kn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return er(this.json),Xn(this.json,e)}debug(){return er(this.json),Xn(this.json,"debug"),this}}const nr=function(e){let t=Qn(e);return new g$1(t)};nr.prototype.plugin=function(e){e(this)};var rr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ar=function(e){if(rr.hasOwnProperty(e.id))return rr[e.id];if(rr.hasOwnProperty(e.is))return rr[e.is];let t=e._cache.parents.find(e=>rr[e]);return rr[t]};var or=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:ar(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ir=function(e){return e?"string"==typeof e?[e]:e:[]};var sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ir(e[t].children),e[t].not=ir(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var lr={one:{setTag:Mn,unTag:Ln,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=sr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return nr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return or(n)}}};const ur=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var cr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ur(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ur(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var hr=function(e){Object.assign(e.prototype,cr)};var dr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const pr=new Set(["Auxiliary","Possessive"]);var mr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(pr.has(e)||!t.hasOwnProperty(n))return 1;if(pr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:lr,api:hr,lib:dr};const gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,fr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var vr=function(e){let t=[],n=e.split(fr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Br=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,zr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,$r=/['’]/,Fr=/^[a-z]\.([a-z]\.)+/i,Sr=/^[-+.][0-9]/,Hr=/^'[0-9]{2}/;var Mr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Br,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Sr.test(e)?"'"===n&&Hr.test(e)?(n="",t):"":(n="",t)))).replace(zr,a=>(r=a,$r.test(a)&&/[sn]['’]$/.test(t)&&!1===$r.test(n)?(r=r.replace($r,""),"'"):!0===Fr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Lr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Wr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,qr=/[A-Z]{2,}('s|,)?$/,Kr=/([a-z]\.)+[a-z]\.?$/;var Rr=function(e){return function(e){return!0===Wr.test(e)||!0===Kr.test(e)||!0===Jr.test(e)||!0===qr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ur=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Lr(r),r=n(r,t),r=Rr(r),e.normal=r};var Qr={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Nr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Or);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Gr(n),n=Ir(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Mr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Ur(e,t)}),n})}}}};var _r={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zr={},Yr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Zr[t]=!0,Yr[t]="Abbreviation",void 0!==e[1]&&(Yr[t]=[Yr[t],e[1]])})});var Xr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ea={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ta={};Object.keys(ea).forEach((function(e){ea[e].split("").forEach((function(t){ta[t]=e}))}));const na=/\//,ra=/[a-z]\.[a-z]/i,aa=/[0-9]/;var oa=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),na.test(n)&&!ra.test(n)&&!aa.test(n)){let t=n.split(na);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ia=/^\p{Letter}+-\p{Letter}+$/u;var sa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ia.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var la=function(e){let t=0,n=0,r=e.document;for(let e=0;eua(e,oa),machine:e=>ua(e,sa),normal:e=>ua(e,Ur),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const pa={safe:!0,min:3};var ma={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ha},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},pa,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=da(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(bn),m.extend(St),m.extend(Tn),m.extend(mr),m.plugin(ve),m.extend(ca),m.plugin(f),m.extend(Te),m.extend(ma),m.extend(Pe),m.extend(zn);var ga={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},fa={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const va="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ba=va.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ya=function(e){if(void 0!==ba[e])return ba[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var wa=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Pa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Aa(fa[e]);xa.test(e)?Object.keys(t).forEach(t=>{if(Ta[t]=e,"Noun|Verb"===e){let e=Ea(t,Ga);Ta[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ia[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ia[e]="Emoticon"),delete Ia[""],delete Ia.null,delete Ia[" "];const Da="Adjective";var Ca={beforeTags:{Determiner:Da,Possessive:Da},afterTags:{Adjective:Da},beforeWords:{seem:Da,seemed:Da,seems:Da,feel:Da,feels:Da,felt:Da,appear:Da,appears:Da,appeared:Da,also:Da,over:Da,under:Da,too:Da,it:Da,but:Da,still:Da,really:Da,quite:Da,well:Da,very:Da,deeply:Da,profoundly:Da,extremely:Da,so:Da,badly:Da,mostly:Da,totally:Da,awfully:Da,rather:Da,nothing:Da,something:Da,anything:Da},afterWords:{too:Da,also:Da,or:Da}};const Oa="Gerund";var Va={beforeTags:{Adverb:Oa,Preposition:Oa,Conjunction:Oa},afterTags:{Adverb:Oa,Possessive:Oa,Person:Oa,Pronoun:Oa,Determiner:Oa,Copula:Oa,Preposition:Oa,Conjunction:Oa,Comparative:Oa},beforeWords:{been:Oa,keep:Oa,continue:Oa,stop:Oa,am:Oa,be:Oa,me:Oa,began:Oa,start:Oa,starts:Oa,started:Oa,stops:Oa,stopped:Oa,help:Oa,helps:Oa,avoid:Oa,avoids:Oa,love:Oa,loves:Oa,loved:Oa,hate:Oa,hates:Oa,hated:Oa},afterWords:{you:Oa,me:Oa,her:Oa,him:Oa,them:Oa,their:Oa,it:Oa,this:Oa,there:Oa,on:Oa,about:Oa,for:Oa}};var Ba={beforeTags:Object.assign({},Ca.beforeTags,Va.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ca.afterTags,Va.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ca.beforeWords,Va.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ca.afterWords,Va.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const za="Singular";var $a={beforeTags:{Determiner:za,Possessive:za,Acronym:za,Noun:za,Adjective:za,PresentTense:za,Gerund:za,PastTense:za,Infinitive:za,Date:za},afterTags:{Value:za,Modal:za,Copula:za,PresentTense:za,PastTense:za,Demonym:za},beforeWords:{the:za,with:za,without:za,of:za,for:za,any:za,all:za,on:za,cut:za,cuts:za,save:za,saved:za,saves:za,make:za,makes:za,made:za,minus:za,plus:za,than:za,another:za,versus:za,neither:za,favorite:za,best:za,daily:za,weekly:za,linear:za,binary:za,mobile:za,lexical:za,technical:za,computer:za,scientific:za,formal:za},afterWords:{of:za,system:za,aid:za,method:za,utility:za,tool:za,reform:za,therapy:za,philosophy:za,room:za,authority:za,says:za,said:za,wants:za,wanted:za}};const Fa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Sa={beforeTags:Object.assign({},Ca.beforeTags,$a.beforeTags,Fa.beforeTags),afterTags:Object.assign({},Ca.afterTags,$a.afterTags),beforeWords:Object.assign({},Ca.beforeWords,$a.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,$a.afterWords)};const Ha={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ma={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},La={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Wa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ja={beforeTags:Object.assign({},Ca.beforeTags,Ha),afterTags:Object.assign({},Ca.afterTags,Ma),beforeWords:Object.assign({},Ca.beforeWords,La),afterWords:Object.assign({},Ca.afterWords,Wa)};const qa="Infinitive";var Ka={beforeTags:{Modal:qa,Adverb:qa,Negative:qa,Plural:qa},afterTags:{Determiner:qa,Adverb:qa,Possessive:qa,Preposition:qa},beforeWords:{i:qa,we:qa,you:qa,they:qa,to:qa,please:qa,will:qa,have:qa,had:qa,would:qa,could:qa,should:qa,do:qa,did:qa,does:qa,can:qa,must:qa,us:qa,me:qa,he:qa,she:qa,it:qa,being:qa},afterWords:{the:qa,me:qa,you:qa,him:qa,her:qa,them:qa,it:qa,a:qa,an:qa,up:qa,down:qa,by:qa,out:qa,off:qa,under:qa,when:qa,all:qa,to:qa,because:qa,although:qa,before:qa,how:qa,otherwise:qa,together:qa,though:qa,yet:qa}};const Ra={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ua={beforeTags:Object.assign({},Ca.beforeTags,Ka.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ca.afterTags,Ka.afterTags,Ra.afterTags),beforeWords:Object.assign({},Ca.beforeWords,Ka.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ca.afterWords,Ka.afterWords,{to:void 0})};const Qa={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},_a={},Za={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Ya={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xa={beforeTags:Object.assign({},Va.beforeTags,$a.beforeTags,Qa),afterTags:Object.assign({},Va.afterTags,$a.afterTags,_a),beforeWords:Object.assign({},Va.beforeWords,$a.beforeWords,Za),afterWords:Object.assign({},Va.afterWords,$a.afterWords,Ya)};var eo={beforeTags:Object.assign({},Ka.beforeTags,$a.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ka.afterTags,$a.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ka.beforeWords,$a.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ka.afterWords,$a.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const to="Person";var no={beforeTags:{Honorific:to,Person:to,Preposition:to},afterTags:{Person:to,ProperNoun:to,Verb:to},ownTags:{ProperNoun:to},beforeWords:{hi:to,hey:to,yo:to,dear:to,hello:to},afterWords:{said:to,says:to,told:to,tells:to,feels:to,felt:to,seems:to,thinks:to,thought:to,spends:to,spendt:to,plays:to,played:to,sing:to,sang:to,learn:to,learned:to,wants:to,wanted:to}};const ro="Month",ao={beforeTags:{Date:ro,Value:ro},afterTags:{Date:ro,Value:ro},beforeWords:{by:ro,in:ro,on:ro,during:ro,after:ro,before:ro,between:ro,until:ro,til:ro,sometime:ro,of:ro,this:ro,next:ro,last:ro,previous:ro,following:ro},afterWords:{sometime:ro,in:ro,of:ro,until:ro,the:ro}};var oo={beforeTags:Object.assign({},no.beforeTags,ao.beforeTags),afterTags:Object.assign({},no.afterTags,ao.afterTags),beforeWords:Object.assign({},no.beforeWords,ao.beforeWords),afterWords:Object.assign({},no.afterWords,ao.afterWords)};const io={Place:"Place"},so={Place:"Place",Abbreviation:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const co={"Adj|Gerund":Ba,"Adj|Noun":Sa,"Adj|Past":Ja,"Adj|Present":Ua,"Noun|Verb":eo,"Noun|Gerund":Xa,"Person|Noun":{beforeTags:Object.assign({},$a.beforeTags,no.beforeTags),afterTags:Object.assign({},$a.afterTags,no.afterTags),beforeWords:Object.assign({},$a.beforeWords,no.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$a.afterWords,no.afterWords)},"Person|Date":oo,"Person|Verb":{beforeTags:Object.assign({},no.beforeTags,Ka.beforeTags),afterTags:Object.assign({},no.afterTags,Ka.afterTags),beforeWords:Object.assign({},no.beforeWords,Ka.beforeWords),afterWords:Object.assign({},no.afterWords,Ka.afterWords)},"Person|Place":{beforeTags:Object.assign({},io,no.beforeTags),afterTags:Object.assign({},so,no.afterTags),beforeWords:Object.assign({},lo,no.beforeWords),afterWords:Object.assign({},uo,no.afterWords)}},ho=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};co["Plural|Verb"]={beforeWords:ho(co["Noun|Verb"].beforeWords,{}),afterWords:ho(co["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:ho(co["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:ho(co["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var po=co;const mo="Adjective",go="Infinitive",fo="PresentTense",vo="Singular",bo="PastTense",yo="Adverb",wo="Plural",ko="Verb",Po="LastName",Ao="Participle";var jo=[null,null,{ea:vo,ia:"Noun",ic:mo,ly:yo,"'n":ko,"'t":ko},{oed:bo,ued:bo,xed:bo," so":yo,"'ll":"Modal","'re":"Copula",azy:mo,eer:"Noun",end:ko,ped:bo,ffy:mo,ify:go,ing:"Gerund",ize:go,ibe:go,lar:mo,mum:mo,nes:fo,nny:mo,ous:mo,que:mo,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:fo,eld:bo,ken:Ao,ven:Ao,ten:Ao,ect:go,ict:go,ign:go,ful:mo,bal:mo},{amed:bo,aped:bo,ched:bo,lked:bo,rked:bo,reed:bo,nded:bo,mned:mo,cted:bo,dged:bo,ield:vo,akis:Po,cede:go,chuk:Po,czyk:Po,ects:fo,ends:ko,enko:Po,ette:vo,wner:vo,fies:fo,fore:yo,gate:go,gone:mo,ices:wo,ints:wo,ruct:go,ines:wo,ions:wo,less:mo,llen:mo,made:mo,nsen:Po,oses:fo,ould:"Modal",some:mo,sson:Po,tion:vo,tage:"Noun",ique:vo,tive:mo,tors:"Noun",vice:vo,lier:vo,fier:vo,wned:bo,gent:vo,tist:vo,pist:vo,rist:vo,mist:vo,yist:vo,vist:vo,lite:vo,site:vo,rite:vo,mite:vo,bite:vo,mate:vo,date:vo,ndal:vo,vent:vo,uist:vo,gist:vo,note:vo,cide:vo,wide:mo,vide:go,ract:go,duce:go,pose:go,eive:go,lyze:go,lyse:go,iant:mo,nary:mo},{elist:vo,holic:vo,phite:vo,tized:bo,urned:bo,eased:bo,ances:wo,bound:mo,ettes:wo,fully:yo,ishes:fo,ities:wo,marek:Po,nssen:Po,ology:"Noun",osome:vo,tment:vo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:yo,where:yo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:go,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:vo,dient:vo},{auskas:Po,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Po,borough:"Place",sdottir:Po}];const No="Adjective";var Eo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:No,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:No,tele:"Noun","pro-":No,"mis-":"Verb","dis-":"Verb","pre-":No},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:No,radio:"Noun",tetra:"Noun","omni-":No,"post-":No},{pseudo:No,"extra-":No,"hyper-":No,"inter-":No,"intra-":No,"deca-":No},{electro:"Noun"}];const xo="Adjective",Io="Infinitive",To="PresentTense",Go="Singular",Do="PastTense",Co="Expression",Oo="LastName";var Vo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Oo],[/.[^aeiou]ica$/,Go,"harmonica"],[/^([hyj]a+)+$/,Co,"haha"]],c:[[/.[^aeiou]ic$/,xo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Do,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Do,"rammed"],[/.[aeiou][sg]hed$/,Do,"gushed"],[/.[aeiou]red$/,Do,"hired"],[/.[aeiou]r?ried$/,Do,"hurried"],[/[^aeiou]ard$/,Go,"steward"],[/[aeiou][^aeiou]id$/,xo,""],[/.[vrl]id$/,xo,"livid"],[/..led$/,Do,"hurled"],[/.[iao]sed$/,Do,""],[/[aeiou]n?[cs]ed$/,Do,""],[/[aeiou][rl]?[mnf]ed$/,Do,""],[/[aeiou][ns]?c?ked$/,Do,"bunked"],[/[aeiou]gned$/,Do],[/[aeiou][nl]?ged$/,Do],[/.[tdbwxyz]ed$/,Do],[/[^aeiou][aeiou][tvx]ed$/,Do],[/.[cdflmnprstv]ied$/,Do,"emptied"]],e:[[/.[lnr]ize$/,Io,"antagonize"],[/.[^aeiou]ise$/,Io,"antagonise"],[/.[aeiou]te$/,Io,"bite"],[/.[^aeiou][ai]ble$/,xo,"fixable"],[/.[^aeiou]eable$/,xo,"maleable"],[/.[ts]ive$/,xo,"festive"],[/[a-z]-like$/,xo,"woman-like"]],h:[[/.[^aeiouf]ish$/,xo,"cornish"],[/.v[iy]ch$/,Oo,"..ovich"],[/^ug?h+$/,Co,"ughh"],[/^uh[ -]?oh$/,Co,"uhoh"],[/[a-z]-ish$/,xo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Oo,"polish-male"]],k:[[/^(k){2}$/,Co,"kkkk"]],l:[[/.[gl]ial$/,xo,"familial"],[/.[^aeiou]ful$/,xo,"fitful"],[/.[nrtumcd]al$/,xo,"natal"],[/.[^aeiou][ei]al$/,xo,"familial"]],m:[[/.[^aeiou]ium$/,Go,"magnesium"],[/[^aeiou]ism$/,Go,"schism"],[/^[hu]m+$/,Co,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,xo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Co,"noooo"],[/^(yo)+$/,Co,"yoo"],[/^wo{2,}[pt]?$/,Co,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Go],[/[^i]fer$/,Io],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,xo],[/[aeiou].*ist$/,xo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,To],[/.[rln]ates$/,To],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Go],[/.[aeiou]sks$/,To],[/.[aeiou]kes$/,To],[/[aeiou][^aeiou]is$/,Go],[/[a-z]'s$/,"Noun"],[/^yes+$/,Co]],v:[[/.[^aeiou][ai][kln]ov$/,Oo]],y:[[/.[cts]hy$/,xo],[/.[st]ty$/,xo],[/.[tnl]ary$/,xo],[/.[oe]ry$/,Go],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,xo],[/...lly$/,"Adverb"],[/.[gk]y$/,xo],[/[bszmp]{2}y$/,xo],[/.[ai]my$/,xo],[/[ea]{2}zy$/,xo],[/.[^aeiou]ity$/,Go]]};const Bo="Verb",zo="Noun";var $o={leftTags:[["Adjective",zo],["Possessive",zo],["Determiner",zo],["Adverb",Bo],["Pronoun",Bo],["Value",zo],["Ordinal",zo],["Modal",Bo],["Superlative",zo],["Demonym",zo],["Honorific","Person"]],leftWords:[["i",Bo],["first",zo],["it",Bo],["there",Bo],["not",Bo],["because",zo],["if",zo],["but",zo],["who",Bo],["this",zo],["his",zo],["when",zo],["you",Bo],["very","Adjective"],["old",zo],["never",Bo],["before",zo],["a","Singular"],["the",zo],["been",Bo]],rightTags:[["Copula",zo],["PastTense",zo],["Conjunction",zo],["Modal",zo]],rightWords:[["there",Bo],["me",Bo],["man","Adjective"],["only",Bo],["him",Bo],["it",Bo],["were",zo],["took",zo],["himself",Bo],["went",zo],["who",zo],["jr","Person"]]},Fo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},So={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ho={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Mo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Lo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Wo=/^.([0-9]+)/;var Jo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Wo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Wo,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},Ko=/^([0-9]+)/,Ro=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Ko);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Ko,"")]}(n[0],n[1])})};var Uo=function(e={}){return(e=Object.assign({},e)).rules=Ro(e.rules),e.rules=qo(e.rules),e.rev&&(e.rev=Ro(e.rev),e.rev=qo(e.rev)),e.exceptions=Ro(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Qo=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const _o=Uo({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),Zo=Uo(Mo),Yo=Uo(So),Xo=Uo(Ho),ei=Qo(_o),ti=Qo(Zo),ni=Qo(Yo),ri=Qo(Xo),ai=Uo(Fo),oi=Uo(Lo);var ii={fromPast:_o,fromPresent:Zo,fromGerund:Yo,fromParticiple:Xo,toPast:ei,toPresent:ti,toGerund:ni,toParticiple:ri,toComparative:ai,toSuperlative:oi,fromComparative:Qo(ai),fromSuperlative:Qo(oi)},si=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),li=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ui=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ci[t].forEach(n=>e[n]=t),e),{});var hi=ci;var di=function(e){let t=e.substring(e.length-3);if(!0===hi.hasOwnProperty(t))return hi[t];let n=e.substring(e.length-2);return!0===hi.hasOwnProperty(n)?hi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const pi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var mi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=di(e)),pi.hasOwnProperty(e))c=pi[e];else if("Participle"===n)c=Jo(l,i);else if("PastTense"===n)c=Jo(l,r);else if("PresentTense"===n)c=Jo(l,a);else{if("Gerund"!==n)return e;c=Jo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var gi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Jo(i,n),PresentTense:Jo(i,r),Gerund:Jo(i,a),FutureTense:"will "+e},u=Jo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var fi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const vi="ically",bi=new Set(["analyt"+vi,"chem"+vi,"class"+vi,"clin"+vi,"crit"+vi,"ecolog"+vi,"electr"+vi,"empir"+vi,"frant"+vi,"grammat"+vi,"ident"+vi,"ideolog"+vi,"log"+vi,"mag"+vi,"mathemat"+vi,"mechan"+vi,"med"+vi,"method"+vi,"method"+vi,"mus"+vi,"phys"+vi,"phys"+vi,"polit"+vi,"pract"+vi,"rad"+vi,"satir"+vi,"statist"+vi,"techn"+vi,"technolog"+vi,"theoret"+vi,"typ"+vi,"vert"+vi,"whims"+vi]),yi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],wi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),ki={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Pi=function(e){return e.endsWith("ly")?bi.has(e)?e.replace(/ically/,"ical"):wi.has(e)?null:ki.hasOwnProperty(e)?ki[e]:fi(e,yi)||e:null};const Ai=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],ji={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ni=function(e){if(ji.hasOwnProperty(e))return ji[e];let t=fi(e,Ai);return t||e+"ly"};const Ei=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],xi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ii=new Set(["terrible","annoying"]);const Ti=function(e,t){const n=t.two.models.toSuperlative;return Jo(e,n)},Gi=function(e,t){const n=t.two.models.toComparative;return Jo(e,n)};var Di={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ci={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Di.hasOwnProperty(i)&&Di[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ea,nounToSingular:ui,verbToInfinitive:mi,getTense:di,verbConjugate:gi,adjToSuperlative:Ti,adjToComparative:Gi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Jo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Jo(e,n)},advToAdjective:Pi,adjToAdverb:Ni,adjToNoun:function(e){if(xi.hasOwnProperty(e))return xi[e];if(Ii.has(e))return null;let t=fi(e,Ei);return t||e+"ness"}}}};var Oi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Vi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Bi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Vi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Vi(r,"Infinitive","Verb"),Object.assign(s,l),l=Vi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Vi(o,"Adjective","Superlative"),Object.assign(s,l),l=Vi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let zi={two:{models:ii}};const $i={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Fi=function(e,t){const n={model:t,methods:Ci};let{lex:r,_multi:a}=Ci.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Si=function(e,t,n){let r=gi(e,zi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Hi=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=$i[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Si(a,r,!1),"Adj|Present"===o&&(Si(a,r,!0),function(e,t,n){let r=Ti(e,n);t[r]=t[r]||"Superlative";let a=Gi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=mi(a,zi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=mi(a,zi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Fi(n,t)};let Mi={one:{_multiCache:{},lexicon:Ia},two:{irregularPlurals:ga,models:ii,suffixPatterns:jo,prefixPatterns:Eo,endsWith:Vo,neighbours:$o,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Ta,clues:po,uncountable:{},orgWords:si}};Mi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Fi(e.one.lexicon,e)).one.lexicon,e),e=Hi(e.two.switches,e),e=Bi(e),e=Oi(e)}(Mi);var Li=Mi;const Wi=/^(under|over|mis|re|un|dis|semi)-?/;var Ji=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(Wi.test(a.normal)){let e=a.normal.replace(Wi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var qi=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const Ki={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ri=new Set(["formulas","koalas","israelis","menus"]),Ui=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var Qi=function(e){if(!e||e.length<=3)return!1;if(Ri.has(e))return!0;let t=e[e.length-1];return Ki.hasOwnProperty(t)?Ki[t].find(t=>e.endsWith(t)):"s"===t&&!Ui.find(t=>e.endsWith(t))};const _i=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Zi=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Qi(e.normal)?qi(e,"Plural","3-plural-guess"):qi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=di(e.normal);t&&qi(e,t,"3-verb-tense-guess")}}(r)};const Yi=/^\p{Lu}[\p{Ll}'’]/u,Xi=/[0-9]/,es=["Date","Month","WeekDay","Unit"],ts=/^[IVXLCDM]{2,}$/,ns=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,rs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var as=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Yi.test(o)&&!1===Xi.test(o)?es.find(e=>r.tags.has(e))?null:(Zi(e,t,n),r.tags.has("Noun")||r.tags.clear(),qi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ts.test(o)&&ns.test(o)&&!rs[r.normal]?(qi(r,"RomanNumeral","2-xvii"),!0):null};const os=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var is=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=os(r.normal,n.two.suffixPatterns);if(null!==e)return qi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=os(r.implicit,n.two.suffixPatterns),null!==e))return qi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const ss=/['‘’‛‵′`´]/,ls=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return qi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const hs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),ds=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!hs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ps=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ms=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var gs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(ds(a)||ds(o))return qi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ps(a)||ps(o))return qi(n,"Year","2-tagYear-close");if(ms(e[t-2])||ms(e[t+2]))return qi(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return qi(n,"Year","2-tagYear-noun")}}}return null};const fs=/^[A-Z]('s|,)?$/,vs=/^[A-Z-]+$/,bs=/([A-Z]\.)+[A-Z]?,?$/,ys=/[A-Z]{2,}('s|,)?$/,ws=/([a-z]\.)+[a-z]\.?$/,ks={I:!0,A:!0};var Ps=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===vs.test(n)||n.length>5||ks.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==bs.test(n)&&!0!==ws.test(n)&&!0!==fs.test(n)&&!0!==ys.test(n))}(r,n)?(r.tags.clear(),qi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!ks.hasOwnProperty(r.text)&&fs.test(r.text)?(r.tags.clear(),qi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(qi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&vs.test(r.text)&&r.text.length<=6?(qi(r,"Acronym","3-titlecase-acronym"),!0):null};const As=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},js=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ns=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||As(e[t-1],a),l=l||As(e[t+1],o),l=l||js(e[t-1],r),l=l||js(e[t+1],i),l)return qi(s,l,"3-[neighbour]"),Zi(e,t,n),e[t].confidence=.2,!0}return null};const Es=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var xs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Es(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Es(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Is=function(e,t,n){0===e[t].tags.size&&(qi(e[t],"Noun","3-[fallback]"),Zi(e,t,n),e[t].confidence=.1)};const Ts=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Gs=(e,t,n)=>0!==t||e[1]?null:n;var Ds={"Adj|Gerund":(e,t)=>Ts(e,t),"Adj|Noun":(e,t)=>Ts(e,t),"Adj|Past":(e,t)=>Ts(e,t),"Adj|Present":(e,t)=>Ts(e,t),"Noun|Gerund":(e,t)=>Ts(e,t),"Noun|Verb":(e,t)=>Ts(e,t)||Gs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ts(e,t)||Gs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ts(e,t),"Person|Verb":(e,t)=>0!==t&&Ts(e,t)};const Cs="undefined"!=typeof process&&process.env?process.env:self.env||{},Os=/^(under|over|mis|re|un|dis|semi)-?/,Vs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Cs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Bs=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Cs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const zs={tagSwitch:Ji,checkSuffix:is,checkRegex:us,checkCase:as,checkPrefix:cs,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(qi(o,"Verb","3-[prefix]"),qi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(qi(o,"Adjective","3-[prefix]"),qi(o,"Prefix","3-[prefix]")))},checkYear:gs},$s={checkAcronym:Ps,neighbours:Ns,orgWords:xs,nounFallback:Is,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Os.test(l)&&!o[l]&&(l=l.replace(Os,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Vs(e[t+1],n.afterWords);return o=o||Vs(e[t-1],n.beforeWords),o=o||Bs(e[t-1],n.beforeTags,a),o=o||Bs(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ds[o]&&(u=Ds[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Cs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Fs=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Ms={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Ls={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Xs=/'/;var el=function(e,t){let n=e[t].normal.split(Xs)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const tl=/'/;var nl=function(e,t){let n=e[t].normal.split(tl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var rl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const al={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ol={in:!0,by:!0,for:!0};var il=(e,t)=>{let n=e[t];if(al.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ol[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const sl=/'/,ll=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},ul={d:(e,t)=>nl(e,t),t:(e,t)=>rl(e,t),s:(e,t,n)=>il(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):el(e,t)},cl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var hl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===sl.test(r[o].normal)&&([,i]=r[o].normal.split(sl));let s=null;ul.hasOwnProperty(i)&&(s=ul[i](r,o,t)),s&&(s=cl(s,e),Ys(n,[a,o],s),ll(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=Zs.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=_s},hooks:["contractionTwo"]};const dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const pl=["i","we","they"];let ml=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:dl+" #Person",tag:"Person",reason:"randy-smith"},{match:dl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${dl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:pl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:pl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:pl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let gl=null;var fl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;gl=gl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(gl),e.uncache(),e}},model:{two:{matches:ml}},hooks:["postTagger"]};var vl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var bl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?vl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var yl={api:function(e){e.prototype.swap=bl}};m.plugin(Rs),m.plugin(hl),m.plugin(fl),m.plugin(yl);var wl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var kl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Pl={this:"Noun",then:"Pivot"};var Al=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Dl={compute:{chunks:function(e){const{document:t,world:n}=e;Al(t),jl(t),xl(e,t,n),Tl(t),Gl(t)}},api:function(e){e.prototype.chunks=kl,e.prototype.clauses=wl},hooks:["chunks"]};const Cl=/'s$/;var Ol=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Cl,""),e.normal=e.normal.replace(Cl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Vl=/\(/,Bl=/\)/,zl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Vl,"");let t=e[e.length-1];t.post=t.post.replace(Bl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Fl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Sl=RegExp("("+Object.keys(Fl).join("|")+")"),Hl=RegExp("("+Object.values(Fl).join("|")+")"),Ml=function(e,t){const n=e[t].pre.match(Sl)[0]||"";if(!n||!Fl[n])return null;const r=Fl[n];for(;t{e[0].pre=e[0].pre.replace(Sl,"");let t=e[e.length-1];t.post=t.post.replace(Hl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Wl=/\./g;var Jl=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var ql=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Kl=(e,t)=>"number"==typeof t?e.eq(t):e,Rl=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ul=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=Rl(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Kl(this,e).map(e=>{let n=Rl(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Kl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Kl(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Kl(t,e),new Adjectives(t.document,t.pointer)}};const Ql=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},_l=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Zl=[["emojis","emoji"],["atmentions","atMentions"]];var Yl=function(e){_l.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=Ql,Zl.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Xl={api:function(e){Yl(e),Ol(e),$l(e),Ll(e),Ul(e),ql(e),Jl(e)}};const eu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var tu={case:e=>{eu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;eu(e,e=>e.text=n(e.text,t))},whitespace:e=>{eu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{eu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const nu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),ru="unicode|punctuation|whitespace|acronyms",au="|case|contractions|parentheses|quotations|emoji|honorifics",ou={light:nu(ru),medium:nu(ru+au),heavy:nu(ru+au+"|possessives|adverbs|nouns|verbs")};var iu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ou[e]),Object.keys(e).forEach(t=>{tu.hasOwnProperty(t)&&tu[t](this,e[t])}),this}}};var su=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const lu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var uu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var hu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:cu(e,t),isSubordinate:uu(e),root:t}};const du=e=>e.text(),pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),mu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var gu=function(e){let t=hu(e);return{root:du(t.root),number:mu(t.number),determiner:du(t.determiner),adjectives:pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const fu={tags:!0};var vu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,fu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",fu),e};const bu={tags:!0};var yu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,bu).tag("Singular","toPlural"),e};const wu=(e,t)=>"number"==typeof t?e.eq(t):e;var ku={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return wu(this,e).map(hu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=gu(t)),n},[])}isPlural(e){let t=this.filter(e=>hu(e).isPlural);return wu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=hu(e).adjectives;n.found&&(t=t.concat(n))}),wu(t,e)}toPlural(e){return wu(this,e).map(e=>vu(e,hu(e)))}toSingular(e){return wu(this,e).map(e=>{let t=hu(e);return yu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=su(this);return t=wu(t,e),new Nouns(this.document,t.pointer)}}};var Pu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Au=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(ju.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(ju.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(ju.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Eu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Iu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Tu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Gu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Du=function(e){if(!0===Tu.hasOwnProperty(e))return Tu[e];if("a"===e||"an"===e)return 1;const t=Au(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ou(n),r=Ou(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ou(n);let a=r.text("reduced");return Cu.test(a)&&(a=a.replace(Cu,""),r=r.replaceWith(a)),r=Vu.hasOwnProperty(a)?Vu[a]:Ou(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Ou(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var zu=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const $u=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Fu=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Su=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Hu=function(e){let t=[];if(e>100)return t;for(let n=0;n<$u.length;n++)e>=$u[n][1]&&(e-=$u[n][1],t.push($u[n][0]));return Fu[e]&&t.push(Fu[e]),t};var Mu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=zu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Su.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Hu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=zu(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var Lu=function(e){if(!e.numerator||!e.denominator)return"";return`${Mu({num:e.numerator})} out of ${Mu({num:e.denominator})}`};const Wu={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ju=e=>{let t=Mu(e).split(" "),n=t[t.length-1];return Wu.hasOwnProperty(n)?t[t.length-1]=Wu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var qu=function(e){if(!e.numerator||!e.denominator)return"";let t=Mu({num:e.numerator}),n=Ju({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Ku=(e,t)=>"number"==typeof t?e.eq(t):e;var Ru=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Ku(this,e).map(Bu)}get(e){return Ku(this,e).map(Bu)}json(e){return Ku(this,e).map(t=>{let n=t.toView().json(e)[0],r=Bu(t);return n.fraction=r,n},[])}toDecimal(e){return Ku(this,e).forEach(e=>{let{decimal:t}=Bu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Ku(this,e).forEach(e=>{let t=Bu(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return Ku(this,e).forEach(e=>{let t=Bu(e),n=qu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Ku(this,e).forEach(e=>{let t=Bu(e),n=Lu(t);e.replaceWith(n)}),this}toPercentage(e){return Ku(this,e).forEach(e=>{let{decimal:t}=Bu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Pu(this);return t=Ku(t,e),new Fractions(this.document,t.pointer)}};const Uu="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Qu=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Uu+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Uu+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Uu+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Uu+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Uu})`),r=e.has("("+Uu+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Uu+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Uu+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var _u=function(e){if("string"==typeof e)return{num:Du(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Bu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Du(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}};var Zu=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=zu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Yu={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Xu={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var ec=function(e){let t={suffix:"",prefix:e.prefix};return Yu.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Yu[e.prefix],t.prefix=""),Xu.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Xu[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var tc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=ec(e);return t+Ju(e)+n}if("Ordinal"===t)return e.prefix+Zu(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=ec(e);return t+Mu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return nc(this,e).map(_u)}get(e){return nc(this,e).map(_u).map(e=>e.num)}json(e){return nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=_u(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=_u(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=tc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=_u(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=tc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=_u(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=tc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=_u(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=tc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=_u(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=tc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>_u(t).num===e)}greaterThan(e){return this.filter(t=>_u(t).num>e)}lessThan(e){return this.filter(t=>_u(t).num{let r=_u(n).num;return r>e&&r{let n=_u(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=tc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=_u(e).num);let t=this.map(t=>{let n=_u(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=tc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Qu(this);return t=nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Qu(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Qu(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var ac={api:function(e){Ru(e),rc(e)}};const oc={people:!0,emails:!0,phoneNumbers:!0,places:!0},ic=function(e={}){return!1!==(e=Object.assign({},oc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var sc={api:function(e){e.prototype.redact=ic}};var lc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var uc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var cc=function(e){let t=e.clauses(),n=uc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var hc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var pc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var mc=function(e){return e.verbs().toInfinitive(),e};const gc=(e,t)=>"number"==typeof t?e.eq(t):e;var fc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=cc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return gc(this,e).map(e=>(cc(e),hc(e)))}toPresentTense(e){return gc(this,e).map(e=>(cc(e),dc(e)))}toFutureTense(e){return gc(this,e).map(e=>(cc(e),e=pc(e)))}toInfinitive(e){return gc(this,e).map(e=>(cc(e),mc(e)))}toNegative(e){return gc(this,e).map(e=>(cc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return gc(this,e).map(e=>(cc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return gc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return gc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=gc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=lc(this);return gc(t,e)}};Object.assign(e.prototype,t)}};var vc=function(e){return e.match("#Honorific+? #Person+")};var bc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const yc="male",wc="female",kc={mr:yc,mrs:wc,miss:wc,madam:wc,king:yc,queen:wc,duke:yc,duchess:wc,baron:yc,baroness:wc,count:yc,countess:wc,prince:yc,princess:wc,sire:yc,dame:wc,lady:wc,ayatullah:yc,congressman:yc,congresswoman:wc,"first lady":wc,mx:null};var Pc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return wc;if(n.has("#MaleName"))return yc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),kc.hasOwnProperty(e))return kc[e];if(/^her /.test(e))return wc;if(/^his /.test(e))return yc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return yc;if(n&&!t)return wc}return null};const Ac=(e,t)=>"number"==typeof t?e.eq(t):e;var jc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Ac(this,e).map(bc)}json(e){return Ac(this,e).map(t=>{let n=t.toView().json(e)[0],r=bc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Pc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=vc(this);return t=Ac(t,e),new People(this.document,t.pointer)}};var Nc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var Ec=function(e){e.prototype.places=function(t){let n=Nc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var xc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Ic=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Tc=function(e){e.prototype.topics=Ic};var Gc={api:function(e){jc(e),Ec(e),xc(e),Tc(e)}};var Dc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Cc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Oc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Vc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Bc=function(e){return e.match("#Negative")},zc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var $c=function(e){let t=e.clone();t.contractions().expand();const n=Cc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Oc(t,n),auxiliary:Vc(t,n),negative:Bc(t),phrasal:zc(n)}};const Fc={tense:"PresentTense"},Sc={conditional:!0},Hc={tense:"FutureTense"},Mc={progressive:!0},Lc={tense:"PastTense"},Wc={complete:!0,progressive:!1},Jc={passive:!0},qc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Kc={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Fc]],["^wanted to #Infinitive$",[Lc]],["^will want to #Infinitive$",[Hc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Lc]],["^#PresentTense #Gerund$",[Fc]],["^#Infinitive #Gerund$",[Fc]],["^will #Infinitive #Gerund$",[Hc]],["^have #PastTense #Gerund$",[Lc]],["^will have #PastTense #Gerund$",[Lc]]],"simple-present":[["^#PresentTense$",[Fc]],["^#Infinitive$",[Fc]]],"simple-past":[["^#PastTense$",[Lc]]],"simple-future":[["^will #Adverb? #Infinitive",[Hc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Fc,Mc]]],"past-progressive":[["^(was|were) #Gerund$",[Lc,Mc]]],"future-progressive":[["^will be #Gerund$",[Hc,Mc]]],"present-perfect":[["^(has|have) #PastTense$",[Lc,Wc]]],"past-perfect":[["^had #PastTense$",[Lc,Wc]],["^had #PastTense to #Infinitive",[Lc,Wc]]],"future-perfect":[["^will have #PastTense$",[Hc,Wc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Lc,Mc]]],"past-perfect-progressive":[["^had been #Gerund$",[Lc,Mc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Hc,Mc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Lc,Jc]],["^(was|were) being (#PastTense|#Participle)",[Lc,Jc]],["^(had|have) been (#PastTense|#Participle)",[Lc,Jc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Fc,Jc]],["^(is|are|am) being (#PastTense|#Participle)",[Fc,Jc]],["^has been (#PastTense|#Participle)",[Fc,Jc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Hc,Jc,Sc]],["will be being? (#PastTense|#Participle)",[Hc,Jc,Sc]]],"present-conditional":[["would be #PastTense",[Fc,Sc]]],"past-conditional":[["would have been #PastTense",[Lc,Sc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Hc]]],"auxiliary-past":[["^did #Infinitive$",[Lc,{plural:!1}]],["^used to #Infinitive$",[Lc,Wc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Fc,Wc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Lc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Rc=[];Object.keys(Kc).map(e=>{Kc[e].forEach(t=>{Rc.push({name:e,match:t[0],data:qc(t[1])})})});var Uc=Rc;var Qc=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),_c(r)&&(n.remove(r),r=n.last()),_c(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Zc(t,e)}};const Xc=e=>e,eh=(e,t)=>{let n=Yc(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},th=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Yc(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},nh=function(e,t){let n=Yc(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},rh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,rh(e)),r&&e.replace(t.root,r),e},oh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ih=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},sh=function(e){return e&&e.isView?e.text("normal"):""},lh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,rh(e))};var uh=function(e){let t=$c(e);e=e.clone().toView();const n=Qc(e,t);return{root:t.root.text(),preAdverbs:ih(t.adverbs.pre),postAdverbs:ih(t.adverbs.post),auxiliary:sh(t.auxiliary),negative:t.negative.found,prefix:sh(t.prefix),infinitive:lh(t.root),grammar:n}};const ch={tags:!0};var hh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,rh(r)),i&&e.replace(r,i,ch).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=nh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const dh={tags:!0},ph={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,rh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Yc(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=ph.simple(e,t),e=ph.noAux(e,t))},hasHad:e=>(e.replace("has","had",dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,rh(a)),n(o,e.model).Participle}},mh={infinitive:ph.simple,"simple-present":ph.simple,"simple-past":Xc,"simple-future":ph.both,"present-progressive":e=>(e.replace("are","were",dh),e.replace("(is|are|am)","was",dh),e),"past-progressive":Xc,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":ph.hasHad,"past-perfect":Xc,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=oh(e)),e.remove("have"),e),"present-perfect-progressive":ph.hasHad,"past-perfect-progressive":Xc,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",dh),e),"passive-past":e=>(e.replace("have","had",dh),e),"passive-present":e=>(e.replace("(is|are)","was",dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Xc,"auxiliary-future":e=>(e.replace("(is|are|am)","was",dh),e),"auxiliary-past":Xc,"auxiliary-present":e=>(e.replace("(do|does)","did",dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",dh):(ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Xc,"want-infinitive":e=>(e.replace("(want|wants)","wanted",dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ph.simple(e,t),oh(e),e)};var gh=function(e,t,n){return mh.hasOwnProperty(n)?((e=mh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const fh={tags:!0},vh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,rh(a)),!1===eh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=th(e)),o&&(e=e.replace(a,o,fh)).not("#Particle").tag("PresentTense"),e},bh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,rh(a)),!1===eh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,fh)).not("#Particle").tag("Gerund"),e},yh={infinitive:vh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return vh(e,t);{let t=Yc(e).subject;if(eh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,fh)}return e},"simple-past":vh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=th(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else vh(e,t),e=e.remove("will");return e},"present-progressive":Xc,"past-progressive":(e,t)=>{let n=th(e);return e.replace("(were|was)",n,fh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(vh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Yc(e).subject;return eh(e)||n.has("i")?((e=ah(e,t)).remove("had"),e):(e.replace("had","has",fh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Xc,"past-perfect-progressive":e=>e.replace("had","has",fh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=th(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,fh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Xc,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Xc,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(bh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=nh(e);return e.replace(t.auxiliary,n),e}return bh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Xc,"modal-infinitive":Xc,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,rh(r)),a&&(e=e.replace(t.root,a,fh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),vh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return eh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,fh),e.remove("will"),e}};var wh=function(e,t,n){return yh.hasOwnProperty(n)?((e=yh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const kh={tags:!0},Ph=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,rh(r)),o&&(e=e.replace(r,o,kh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Ah=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,rh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,kh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},jh={infinitive:Ph,"simple-present":Ph,"simple-past":Ph,"simple-future":Xc,"present-progressive":Ah,"past-progressive":Ah,"future-progressive":Xc,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Xc,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Xc,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Xc,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Xc,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Xc,"modal-past":Xc,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Nh=function(e,t,n){return e.has("will")||e.has("going to")?e:jh.hasOwnProperty(n)?((e=jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Eh={tags:!0};var xh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,rh(a));let s=r(i,e.model).Gerund;return s&&(s=`${th(e)} ${s}`,e.replace(a,s,Eh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Ih={tags:!0},Th=function(e,t){let n=nh(e);return e.prepend(n+" not"),e},Gh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Dh=e=>e.has("(is|was|am|are|will|were|be)"),Ch={"simple-present":(e,t)=>!0===Dh(e)?Gh(e):(e=ah(e,t),e=Th(e)),"simple-past":(e,t)=>!0===Dh(e)?Gh(e):((e=ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Dh(e)?Gh(e):Th(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Ih),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Th(e)).replace("wants","want",Ih)};var Oh=function(e,t,n){if(e.has("#Negative"))return e;if(Ch.hasOwnProperty(n))return e=Ch[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Dh(e)?Gh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Vh=(e,t)=>"number"==typeof t?e.eq(t):e;var Bh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Vh(this,e).map($c)}json(e,t){return Vh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=uh(t),n},[])}subjects(e){return Vh(this,e).map(e=>($c(e),Yc(e).subject))}adverbs(e){return Vh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Vh(this,e).filter(e=>!0!==Yc(e).plural)}isPlural(e){return Vh(this,e).filter(e=>!0===Yc(e).plural)}isImperative(e){return Vh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return hh(e,t,n.form)})}toPresentTense(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return wh(e,t,n.form)})}toPastTense(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return gh(e,t,n.form)})}toFutureTense(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return Nh(e,t,n.form)})}toGerund(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return xh(e,t,n.form)})}conjugate(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:hh(e.clone(),t,n.form).text("normal"),PastTense:gh(e.clone(),t,n.form).text("normal"),PresentTense:wh(e.clone(),t,n.form).text("normal"),FutureTense:Nh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Vh(this,e).map(e=>{let t=$c(e),n=Qc(e,t);return Oh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Dc(this);return t=Vh(t,e),new Verbs(this.document,t.pointer)}}};m.plugin(Dl),m.plugin(Xl),m.plugin(iu),m.plugin(ku),m.plugin(ac),m.plugin(sc),m.plugin(fc),m.plugin(Gc),m.plugin(Bh);export{m as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let d=Object.assign({},e);const m=function(e,t){t&&m.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(e,t){const{compute:n}=this._world;t&&m.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(e){return u(e,this._world,s,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},m.version="14.3.1";var p=m;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||v(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),b(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1;var r=k;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const N=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},x=e=>"[object Array]"===Object.prototype.toString.call(e),E=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:x(e)?x(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(N(t.update([u]).firstTerm()),P(h,u,d,r)):(N(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},D.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var C=D;var O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z;var F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return b(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}};var q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const me=/'/,pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},ve={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},be=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===me.test(r[s].normal)&&([l,u]=r[s].normal.split(me));let c=be(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&ve.hasOwnProperty(l)&&(c=ve[l](r,s)),c?(c=ye(c,e),Q(n,[i,s],c),ge(n[i],e,s,c.length)):pe.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ne={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var xe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ee=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e};var Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:xe(e,this.world));var r;let a=Te(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=xe(e,this.world());return De(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Oe(n,t),Object.keys(r).forEach(e=>{r[e]=Oe(r[e],t)}),{ptrs:n,byGroup:r}},Be=e=>"[object Object]"===Object.prototype.toString.call(e),ze=e=>e&&Be(e)&&!0===e.isView,$e=e=>e&&Be(e)&&!0===e.isNet,Fe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Fe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(ze(e)){return e.fullPointer.length>0}if($e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(ze(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(ze(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Fe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var He={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},Le=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},We=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Je={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Je.split=Je.splitAfter;var qe=Je;const Ke=Object.assign({},Se,He,qe);Ke.lookBehind=Ke.before,Ke.lookBefore=Ke.before,Ke.lookAhead=Ke.after,Ke.lookAfter=Ke.after,Ke.notIf=Ke.ifNo;var Ue=function(e){Object.assign(e.prototype,Ke)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ze=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{Ze(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Ye(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ze(e)?r.push(e):r=r.concat(e.split(_e))}),r=Ye(r),r};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),at=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===at(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===at(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===at(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===at(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===at(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===at(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===at(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===at(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let r=n.choices.length-1;n.choices[r]=st(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===at(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===at(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===at(e))return e=lt(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===at(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=rt(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&ht.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var mt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var pt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Xe(e);return r=r.map(e=>ct(e,t)),r=dt(r,n),r=mt(r,n),r=pt(r),r};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var vt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),Nt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>kt.test(e.post)||kt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Nt.hasQuotation=Nt.hasQuote;var xt=Nt;let Et=function(){};Et=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(bt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof xt[t.method]&&!0===xt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Et(e,t,n,r)):t.choices.some(t=>Et(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=Et;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Gt(e,e.t).length=r-e.t}return e.t=r,!0};const Ct=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Gt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Bt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var $t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!$t(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Gt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Tt(e,a))if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Bt(a))return null}if(!0!==e.optional)return null}else{if(!St(a))return null}else{if(!St(a))return null}else{if(!St(a))return null}else{if(!Vt(a))return null}else{if(!Ot(a))return null}else{if(!Dt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Ue,methods:{one:{termMethods:xt,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Yt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Xt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let rn=[],an=0;for(;an<64;)rn[an]=0|4294967296*Math.sin(++an%Math.PI);function on(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(an=i=0;an>4]+rn[i]+~~o[an|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},sn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&cn[o]&&(a[o]=cn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn;var mn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var pn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n ──────")),t.forEach(e=>{console.log(pn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=pn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=pn.blue(" │ ")+pn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var fn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${pn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const bn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var yn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var Pn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Nn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var xn=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var En={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Nn,splitAll:xn}}};var In=function(e,t){let n=e.concat(t),r=Nn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>jn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Gn=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>jn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Cn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},On={union:function(e){e=Dn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)}};On.and=On.union,On.intersection=function(e){e=Dn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.not=function(e){e=Dn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.difference=On.not,On.complement=function(){let e=this.all(),t=Tn(e.fullPointer,this.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=In(e,[t])}),e=Cn(e,this.document),this.update(e)};var Vn={methods:En,api:function(e){Object.assign(e.prototype,On)}};const Bn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var zn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Bn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Bn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Bn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var $n=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var Fn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Sn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Hn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=zn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=$n(a,t.hooks);return o=Fn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Sn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Ln=/ /,Wn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Jn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Ln.test(t))!function(e,t,n,r){let a=t.split(Ln);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Jn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn;var Un=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Rn({id:e})),t}return[Rn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Yn=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:_n(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Rn({});return e.forEach(e=>{if((e=Rn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Zn(t=e).forEach(Rn),t);var t},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Zn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},nr=function(e){let t=Zn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},rr={text:tr,txt:tr,array:nr,flat:nr},ar=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(tr(e,!0)),null):rr.hasOwnProperty(t)?rr[t](e):e},or=e=>{Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ir=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Xn(e),!ir.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Rn({});return new g$1(t)}add(e,t={}){if(Yn(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Xn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Zn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Zn(this.json)}fillDown(){var e;return e=this.json,Zn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Yn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){or(this.json);let e=Zn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return or(this.json),ar(this.json,e)}debug(){return or(this.json),ar(this.json,"debug"),this}}const sr=function(e){let t=er(e);return new g$1(t)};sr.prototype.plugin=function(e){e(this)};var lr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ur=function(e){if(lr.hasOwnProperty(e.id))return lr[e.id];if(lr.hasOwnProperty(e.is))return lr[e.is];let t=e._cache.parents.find(e=>lr[e]);return lr[t]};var cr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:ur(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const hr=function(e){return e?"string"==typeof e?[e]:e:[]};var dr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=hr(e[t].children),e[t].not=hr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var mr={one:{setTag:Kn,unTag:Un,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=dr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return sr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return cr(n)}}};const pr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var gr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),pr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return pr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var fr=function(e){Object.assign(e.prototype,gr)};var vr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const br=new Set(["Auxiliary","Possessive"]);var yr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(br.has(e)||!t.hasOwnProperty(n))return 1;if(br.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:mr,api:fr,lib:vr};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var kr=function(e){let t=[],n=e.split(Pr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Hr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Wr=/^[a-z]\.([a-z]\.)+/i,Jr=/^[-+.][0-9]/,qr=/^'[0-9]{2}/;var Kr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Hr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Jr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Lr.test(a)&&/[sn]['’]$/.test(t)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Wr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Ur=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Rr=/([A-Z]\.)+[A-Z]?,?$/,Qr=/^[A-Z]\.,?$/,_r=/[A-Z]{2,}('s|,)?$/,Zr=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===Zr.test(e)||!0===Qr.test(e)||!0===_r.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ur(r),r=n(r,t),r=Yr(r),e.normal=r};var ea={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Gr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Fr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Br(n),n=Or(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Kr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}};var ta={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let na={},ra={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{na[t]=!0,ra[t]="Abbreviation",void 0!==e[1]&&(ra[t]=[ra[t],e[1]])})});var aa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let oa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ia={};Object.keys(oa).forEach((function(e){oa[e].split("").forEach((function(t){ia[t]=e}))}));const sa=/\//,la=/[a-z]\.[a-z]/i,ua=/[0-9]/;var ca=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),sa.test(n)&&!la.test(n)&&!ua.test(n)){let t=n.split(sa);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ha=/^\p{Letter}+-\p{Letter}+$/u;var da=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ha.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ma=function(e){let t=0,n=0,r=e.document;for(let e=0;epa(e,ca),machine:e=>pa(e,da),normal:e=>pa(e,Xr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ba={safe:!0,min:3};var ya={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=fa},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ba,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};p.extend(U),p.extend(An),p.extend(Jt),p.extend(Vn),p.extend(yr),p.plugin(we),p.extend(ga),p.plugin(f),p.extend(Ce),p.extend(ya),p.extend(Ne),p.extend(Mn);var wa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Pa={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ka="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Aa=ka.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ja=function(e){if(void 0!==Aa[e])return Aa[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Na=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ea(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ia(Pa[e]);Ca.test(e)?Object.keys(t).forEach(t=>{if(Va[t]=e,"Noun|Verb"===e){let e=Da(t,Ba);Va[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Oa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oa[e]="Emoticon"),delete Oa[""],delete Oa.null,delete Oa[" "];const za="Adjective";var $a={beforeTags:{Determiner:za,Possessive:za},afterTags:{Adjective:za},beforeWords:{seem:za,seemed:za,seems:za,feel:za,feels:za,felt:za,appear:za,appears:za,appeared:za,also:za,over:za,under:za,too:za,it:za,but:za,still:za,really:za,quite:za,well:za,very:za,deeply:za,profoundly:za,extremely:za,so:za,badly:za,mostly:za,totally:za,awfully:za,rather:za,nothing:za,something:za,anything:za},afterWords:{too:za,also:za,or:za}};const Fa="Gerund";var Sa={beforeTags:{Adverb:Fa,Preposition:Fa,Conjunction:Fa},afterTags:{Adverb:Fa,Possessive:Fa,Person:Fa,Pronoun:Fa,Determiner:Fa,Copula:Fa,Preposition:Fa,Conjunction:Fa,Comparative:Fa},beforeWords:{been:Fa,keep:Fa,continue:Fa,stop:Fa,am:Fa,be:Fa,me:Fa,began:Fa,start:Fa,starts:Fa,started:Fa,stops:Fa,stopped:Fa,help:Fa,helps:Fa,avoid:Fa,avoids:Fa,love:Fa,loves:Fa,loved:Fa,hate:Fa,hates:Fa,hated:Fa},afterWords:{you:Fa,me:Fa,her:Fa,him:Fa,them:Fa,their:Fa,it:Fa,this:Fa,there:Fa,on:Fa,about:Fa,for:Fa}};var Ha={beforeTags:Object.assign({},$a.beforeTags,Sa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$a.afterTags,Sa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$a.beforeWords,Sa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$a.afterWords,Sa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ma="Singular";var La={beforeTags:{Determiner:Ma,Possessive:Ma,Acronym:Ma,Noun:Ma,Adjective:Ma,PresentTense:Ma,Gerund:Ma,PastTense:Ma,Infinitive:Ma,Date:Ma},afterTags:{Value:Ma,Modal:Ma,Copula:Ma,PresentTense:Ma,PastTense:Ma,Demonym:Ma},beforeWords:{the:Ma,with:Ma,without:Ma,of:Ma,for:Ma,any:Ma,all:Ma,on:Ma,cut:Ma,cuts:Ma,save:Ma,saved:Ma,saves:Ma,make:Ma,makes:Ma,made:Ma,minus:Ma,plus:Ma,than:Ma,another:Ma,versus:Ma,neither:Ma,favorite:Ma,best:Ma,daily:Ma,weekly:Ma,linear:Ma,binary:Ma,mobile:Ma,lexical:Ma,technical:Ma,computer:Ma,scientific:Ma,formal:Ma},afterWords:{of:Ma,system:Ma,aid:Ma,method:Ma,utility:Ma,tool:Ma,reform:Ma,therapy:Ma,philosophy:Ma,room:Ma,authority:Ma,says:Ma,said:Ma,wants:Ma,wanted:Ma}};const Wa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ja={beforeTags:Object.assign({},$a.beforeTags,La.beforeTags,Wa.beforeTags),afterTags:Object.assign({},$a.afterTags,La.afterTags),beforeWords:Object.assign({},$a.beforeWords,La.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$a.afterWords,La.afterWords)};const qa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ka={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ua={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ra={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Qa={beforeTags:Object.assign({},$a.beforeTags,qa),afterTags:Object.assign({},$a.afterTags,Ka),beforeWords:Object.assign({},$a.beforeWords,Ua),afterWords:Object.assign({},$a.afterWords,Ra)};const _a="Infinitive";var Za={beforeTags:{Modal:_a,Adverb:_a,Negative:_a,Plural:_a},afterTags:{Determiner:_a,Adverb:_a,Possessive:_a,Preposition:_a},beforeWords:{i:_a,we:_a,you:_a,they:_a,to:_a,please:_a,will:_a,have:_a,had:_a,would:_a,could:_a,should:_a,do:_a,did:_a,does:_a,can:_a,must:_a,us:_a,me:_a,he:_a,she:_a,it:_a,being:_a},afterWords:{the:_a,me:_a,you:_a,him:_a,her:_a,them:_a,it:_a,a:_a,an:_a,up:_a,down:_a,by:_a,out:_a,off:_a,under:_a,when:_a,all:_a,to:_a,because:_a,although:_a,before:_a,how:_a,otherwise:_a,together:_a,though:_a,yet:_a}};const Ya={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xa={beforeTags:Object.assign({},$a.beforeTags,Za.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$a.afterTags,Za.afterTags,Ya.afterTags),beforeWords:Object.assign({},$a.beforeWords,Za.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$a.afterWords,Za.afterWords,{to:void 0})};const eo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},to={},no={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ro={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ao={beforeTags:Object.assign({},Sa.beforeTags,La.beforeTags,eo),afterTags:Object.assign({},Sa.afterTags,La.afterTags,to),beforeWords:Object.assign({},Sa.beforeWords,La.beforeWords,no),afterWords:Object.assign({},Sa.afterWords,La.afterWords,ro)};var oo={beforeTags:Object.assign({},Za.beforeTags,La.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Za.afterTags,La.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Za.beforeWords,La.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Za.afterWords,La.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const io="Person";var so={beforeTags:{Honorific:io,Person:io,Preposition:io},afterTags:{Person:io,ProperNoun:io,Verb:io},ownTags:{ProperNoun:io},beforeWords:{hi:io,hey:io,yo:io,dear:io,hello:io},afterWords:{said:io,says:io,told:io,tells:io,feels:io,felt:io,seems:io,thinks:io,thought:io,spends:io,spendt:io,plays:io,played:io,sing:io,sang:io,learn:io,learned:io,wants:io,wanted:io}};const lo="Month",uo={beforeTags:{Date:lo,Value:lo},afterTags:{Date:lo,Value:lo},beforeWords:{by:lo,in:lo,on:lo,during:lo,after:lo,before:lo,between:lo,until:lo,til:lo,sometime:lo,of:lo,this:lo,next:lo,last:lo,previous:lo,following:lo},afterWords:{sometime:lo,in:lo,of:lo,until:lo,the:lo}};var co={beforeTags:Object.assign({},so.beforeTags,uo.beforeTags),afterTags:Object.assign({},so.afterTags,uo.afterTags),beforeWords:Object.assign({},so.beforeWords,uo.beforeWords),afterWords:Object.assign({},so.afterWords,uo.afterWords)};const ho={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fo="Unit";const vo={"Adj|Gerund":Ha,"Adj|Noun":Ja,"Adj|Past":Qa,"Adj|Present":Xa,"Noun|Verb":oo,"Noun|Gerund":ao,"Person|Noun":{beforeTags:Object.assign({},La.beforeTags,so.beforeTags),afterTags:Object.assign({},La.afterTags,so.afterTags),beforeWords:Object.assign({},La.beforeWords,so.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},La.afterWords,so.afterWords)},"Person|Date":co,"Person|Verb":{beforeTags:Object.assign({},so.beforeTags,Za.beforeTags),afterTags:Object.assign({},so.afterTags,Za.afterTags),beforeWords:Object.assign({},so.beforeWords,Za.beforeWords),afterWords:Object.assign({},so.afterWords,Za.afterWords)},"Person|Place":{beforeTags:Object.assign({},ho,so.beforeTags),afterTags:Object.assign({},mo,so.afterTags),beforeWords:Object.assign({},po,so.beforeWords),afterWords:Object.assign({},go,so.afterWords)},"Unit|Noun":{beforeTags:{Value:fo},afterTags:{},beforeWords:{per:fo,every:fo,each:fo,square:fo,cubic:fo,sq:fo,metric:fo},afterWords:{per:fo,squared:fo,cubed:fo,long:fo}}},bo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};vo["Plural|Verb"]={beforeWords:bo(vo["Noun|Verb"].beforeWords,{}),afterWords:bo(vo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bo(vo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bo(vo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yo=vo;const wo="Adjective",Po="Infinitive",ko="PresentTense",Ao="Singular",jo="PastTense",No="Adverb",xo="Plural",Eo="Verb",Io="LastName",To="Participle";var Go=[null,null,{ea:Ao,ia:"Noun",ic:wo,ly:No,"'n":Eo,"'t":Eo},{oed:jo,ued:jo,xed:jo," so":No,"'ll":"Modal","'re":"Copula",azy:wo,eer:"Noun",end:Eo,ped:jo,ffy:wo,ify:Po,ing:"Gerund",ize:Po,ibe:Po,lar:wo,mum:wo,nes:ko,nny:wo,ous:wo,que:wo,rol:Ao,sis:Ao,ogy:Ao,oid:Ao,ian:Ao,zes:ko,eld:jo,ken:To,ven:To,ten:To,ect:Po,ict:Po,ign:Po,ful:wo,bal:wo},{amed:jo,aped:jo,ched:jo,lked:jo,rked:jo,reed:jo,nded:jo,mned:wo,cted:jo,dged:jo,ield:Ao,akis:Io,cede:Po,chuk:Io,czyk:Io,ects:ko,ends:Eo,enko:Io,ette:Ao,wner:Ao,fies:ko,fore:No,gate:Po,gone:wo,ices:xo,ints:xo,ruct:Po,ines:xo,ions:xo,less:wo,llen:wo,made:wo,nsen:Io,oses:ko,ould:"Modal",some:wo,sson:Io,tion:Ao,tage:"Noun",ique:Ao,tive:wo,tors:"Noun",vice:Ao,lier:Ao,fier:Ao,wned:jo,gent:Ao,tist:Ao,pist:Ao,rist:Ao,mist:Ao,yist:Ao,vist:Ao,lite:Ao,site:Ao,rite:Ao,mite:Ao,bite:Ao,mate:Ao,date:Ao,ndal:Ao,vent:Ao,uist:Ao,gist:Ao,note:Ao,cide:Ao,wide:wo,vide:Po,ract:Po,duce:Po,pose:Po,eive:Po,lyze:Po,lyse:Po,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:jo,urned:jo,eased:jo,ances:xo,bound:wo,ettes:xo,fully:No,ishes:ko,ities:xo,marek:Io,nssen:Io,ology:"Noun",osome:Ao,tment:Ao,ports:xo,rough:wo,tches:ko,tieth:"Ordinal",tures:xo,wards:No,where:No,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ao,scent:Ao,onist:Ao,anist:Ao,alist:Ao,olist:Ao,icist:Ao,ounce:Po,iable:wo,borne:wo,gnant:wo,inant:wo,igent:wo,atory:wo,rient:Ao,dient:Ao},{auskas:Io,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective";var Co=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Do,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Do,tele:"Noun","pro-":Do,"mis-":"Verb","dis-":"Verb","pre-":Do},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Do,radio:"Noun",tetra:"Noun","omni-":Do,"post-":Do},{pseudo:Do,"extra-":Do,"hyper-":Do,"inter-":Do,"intra-":Do,"deca-":Do},{electro:"Noun"}];const Oo="Adjective",Vo="Infinitive",Bo="PresentTense",zo="Singular",$o="PastTense",Fo="Expression",So="LastName";var Ho={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,So],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Oo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,$o,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,$o,"rammed"],[/.[aeiou][sg]hed$/,$o,"gushed"],[/.[aeiou]red$/,$o,"hired"],[/.[aeiou]r?ried$/,$o,"hurried"],[/[^aeiou]ard$/,zo,"steward"],[/[aeiou][^aeiou]id$/,Oo,""],[/.[vrl]id$/,Oo,"livid"],[/..led$/,$o,"hurled"],[/.[iao]sed$/,$o,""],[/[aeiou]n?[cs]ed$/,$o,""],[/[aeiou][rl]?[mnf]ed$/,$o,""],[/[aeiou][ns]?c?ked$/,$o,"bunked"],[/[aeiou]gned$/,$o],[/[aeiou][nl]?ged$/,$o],[/.[tdbwxyz]ed$/,$o],[/[^aeiou][aeiou][tvx]ed$/,$o],[/.[cdflmnprstv]ied$/,$o,"emptied"]],e:[[/.[lnr]ize$/,Vo,"antagonize"],[/.[^aeiou]ise$/,Vo,"antagonise"],[/.[aeiou]te$/,Vo,"bite"],[/.[^aeiou][ai]ble$/,Oo,"fixable"],[/.[^aeiou]eable$/,Oo,"maleable"],[/.[ts]ive$/,Oo,"festive"],[/[a-z]-like$/,Oo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oo,"cornish"],[/.v[iy]ch$/,So,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,So,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Oo,"familial"],[/.[^aeiou]ful$/,Oo,"fitful"],[/.[nrtumcd]al$/,Oo,"natal"],[/.[^aeiou][ei]al$/,Oo,"familial"]],m:[[/.[^aeiou]ium$/,zo,"magnesium"],[/[^aeiou]ism$/,zo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Fo,"noooo"],[/^(yo)+$/,Fo,"yoo"],[/^wo{2,}[pt]?$/,Fo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,zo],[/[^i]fer$/,Vo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,So]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,"Adverb"],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,zo]]};const Mo="Verb",Lo="Noun";var Wo={leftTags:[["Adjective",Lo],["Possessive",Lo],["Determiner",Lo],["Adverb",Mo],["Pronoun",Mo],["Value",Lo],["Ordinal",Lo],["Modal",Mo],["Superlative",Lo],["Demonym",Lo],["Honorific","Person"]],leftWords:[["i",Mo],["first",Lo],["it",Mo],["there",Mo],["not",Mo],["because",Lo],["if",Lo],["but",Lo],["who",Mo],["this",Lo],["his",Lo],["when",Lo],["you",Mo],["very","Adjective"],["old",Lo],["never",Mo],["before",Lo],["a","Singular"],["the",Lo],["been",Mo]],rightTags:[["Copula",Lo],["PastTense",Lo],["Conjunction",Lo],["Modal",Lo]],rightWords:[["there",Mo],["me",Mo],["man","Adjective"],["only",Mo],["him",Mo],["it",Mo],["were",Lo],["took",Lo],["himself",Mo],["went",Lo],["who",Lo],["jr","Person"]]},Jo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},qo={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ko={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Uo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ro={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qo=/^.([0-9]+)/;var _o=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qo,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},Yo=/^([0-9]+)/,Xo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Yo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Yo,"")]}(n[0],n[1])})};var ei=function(e={}){return(e=Object.assign({},e)).rules=Xo(e.rules),e.rules=Zo(e.rules),e.rev&&(e.rev=Xo(e.rev),e.rev=Zo(e.rev)),e.exceptions=Xo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ti=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ni=ei({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ri=ei(Uo),ai=ei(qo),oi=ei(Ko),ii=ti(ni),si=ti(ri),li=ti(ai),ui=ti(oi),ci=ei(Jo),hi=ei(Ro);var di={fromPast:ni,fromPresent:ri,fromGerund:ai,fromParticiple:oi,toPast:ii,toPresent:si,toGerund:li,toParticiple:ui,toComparative:ci,toSuperlative:hi,fromComparative:ti(ci),fromSuperlative:ti(hi)},mi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),pi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var gi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(fi[t].forEach(n=>e[n]=t),e),{});var vi=fi;var bi=function(e){let t=e.substring(e.length-3);if(!0===vi.hasOwnProperty(t))return vi[t];let n=e.substring(e.length-2);return!0===vi.hasOwnProperty(n)?vi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var wi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=bi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=_o(l,i);else if("PastTense"===n)c=_o(l,r);else if("PresentTense"===n)c=_o(l,a);else{if("Gerund"!==n)return e;c=_o(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Pi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:_o(i,n),PresentTense:_o(i,r),Gerund:_o(i,a),FutureTense:"will "+e},u=_o(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var ki=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ai="ically",ji=new Set(["analyt"+Ai,"chem"+Ai,"class"+Ai,"clin"+Ai,"crit"+Ai,"ecolog"+Ai,"electr"+Ai,"empir"+Ai,"frant"+Ai,"grammat"+Ai,"ident"+Ai,"ideolog"+Ai,"log"+Ai,"mag"+Ai,"mathemat"+Ai,"mechan"+Ai,"med"+Ai,"method"+Ai,"method"+Ai,"mus"+Ai,"phys"+Ai,"phys"+Ai,"polit"+Ai,"pract"+Ai,"rad"+Ai,"satir"+Ai,"statist"+Ai,"techn"+Ai,"technolog"+Ai,"theoret"+Ai,"typ"+Ai,"vert"+Ai,"whims"+Ai]),Ni=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],xi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ei={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ii=function(e){return e.endsWith("ly")?ji.has(e)?e.replace(/ically/,"ical"):xi.has(e)?null:Ei.hasOwnProperty(e)?Ei[e]:ki(e,Ni)||e:null};const Ti=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Gi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Di=function(e){if(Gi.hasOwnProperty(e))return Gi[e];let t=ki(e,Ti);return t||e+"ly"};const Ci=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Oi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Vi=new Set(["terrible","annoying"]);const Bi=function(e,t){const n=t.two.models.toSuperlative;return _o(e,n)},zi=function(e,t){const n=t.two.models.toComparative;return _o(e,n)};var $i={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Fi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===$i.hasOwnProperty(i)&&$i[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Da,nounToSingular:gi,verbToInfinitive:wi,getTense:bi,verbConjugate:Pi,adjToSuperlative:Bi,adjToComparative:zi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return _o(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return _o(e,n)},advToAdjective:Ii,adjToAdverb:Di,adjToNoun:function(e){if(Oi.hasOwnProperty(e))return Oi[e];if(Vi.has(e))return null;let t=ki(e,Ci);return t||e+"ness"}}}};var Si=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Hi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Mi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Hi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Hi(r,"Infinitive","Verb"),Object.assign(s,l),l=Hi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Hi(o,"Adjective","Superlative"),Object.assign(s,l),l=Hi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Li={two:{models:di}};const Wi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=function(e,t){const n={model:t,methods:Fi};let{lex:r,_multi:a}=Fi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},qi=function(e,t,n){let r=Pi(e,Li);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ki=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Wi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||qi(a,r,!1),"Adj|Present"===o&&(qi(a,r,!0),function(e,t,n){let r=Bi(e,n);t[r]=t[r]||"Superlative";let a=zi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(a,Li,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=wi(a,Li,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ji(n,t)};let Ui={one:{_multiCache:{},lexicon:Oa},two:{irregularPlurals:wa,models:di,suffixPatterns:Go,prefixPatterns:Co,endsWith:Ho,neighbours:Wo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Va,clues:yo,uncountable:{},orgWords:mi}};Ui=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Ji(e.one.lexicon,e)).one.lexicon,e),e=Ki(e.two.switches,e),e=Mi(e),e=Si(e)}(Ui);var Ri=Ui;const Qi=/^(under|over|mis|re|un|dis|semi)-?/;var _i=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(Qi.test(a.normal)){let e=a.normal.replace(Qi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Zi=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const Yi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Xi=new Set(["formulas","koalas","israelis","menus"]),es=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ts=function(e){if(!e||e.length<=3)return!1;if(Xi.has(e))return!0;let t=e[e.length-1];return Yi.hasOwnProperty(t)?Yi[t].find(t=>e.endsWith(t)):"s"===t&&!es.find(t=>e.endsWith(t))};const ns=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var rs=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ts(e.normal)?Zi(e,"Plural","3-plural-guess"):Zi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=bi(e.normal);t&&Zi(e,t,"3-verb-tense-guess")}}(r)};const as=/^\p{Lu}[\p{Ll}'’]/u,os=/[0-9]/,is=["Date","Month","WeekDay","Unit"],ss=/^[IVXLCDM]{2,}$/,ls=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,us={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var cs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===as.test(o)&&!1===os.test(o)?is.find(e=>r.tags.has(e))?null:(rs(e,t,n),r.tags.has("Noun")||r.tags.clear(),Zi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ss.test(o)&&ls.test(o)&&!us[r.normal]?(Zi(r,"RomanNumeral","2-xvii"),!0):null};const hs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var ds=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=hs(r.normal,n.two.suffixPatterns);if(null!==e)return Zi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=hs(r.implicit,n.two.suffixPatterns),null!==e))return Zi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const ms=/['‘’‛‵′`´]/,ps=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return Zi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const vs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),bs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!vs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ys=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ws=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ps=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(bs(a)||bs(o))return Zi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ys(a)||ys(o))return Zi(n,"Year","2-tagYear-close");if(ws(e[t-2])||ws(e[t+2]))return Zi(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return Zi(n,"Year","2-tagYear-noun")}}}return null};const ks=/^[A-Z]('s|,)?$/,As=/^[A-Z-]+$/,js=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,xs=/([a-z]\.)+[a-z]\.?$/,Es={I:!0,A:!0};var Is=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===As.test(n)||n.length>5||Es.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==js.test(n)&&!0!==xs.test(n)&&!0!==ks.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Zi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Es.hasOwnProperty(r.text)&&ks.test(r.text)?(r.tags.clear(),Zi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Zi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&As.test(r.text)&&r.text.length<=6?(Zi(r,"Acronym","3-titlecase-acronym"),!0):null};const Ts=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Gs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ds=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ts(e[t-1],a),l=l||Ts(e[t+1],o),l=l||Gs(e[t-1],r),l=l||Gs(e[t+1],i),l)return Zi(s,l,"3-[neighbour]"),rs(e,t,n),e[t].confidence=.2,!0}return null};const Cs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Os=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Cs(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Cs(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Vs=function(e,t,n){0===e[t].tags.size&&(Zi(e[t],"Noun","3-[fallback]"),rs(e,t,n),e[t].confidence=.1)};const Bs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,zs=(e,t,n)=>0!==t||e[1]?null:n;var $s={"Adj|Gerund":(e,t)=>Bs(e,t),"Adj|Noun":(e,t)=>Bs(e,t),"Adj|Past":(e,t)=>Bs(e,t),"Adj|Present":(e,t)=>Bs(e,t),"Noun|Gerund":(e,t)=>Bs(e,t),"Noun|Verb":(e,t)=>Bs(e,t)||zs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Bs(e,t)||zs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Bs(e,t),"Person|Verb":(e,t)=>0!==t&&Bs(e,t)};const Fs="undefined"!=typeof process&&process.env?process.env:self.env||{},Ss=/^(under|over|mis|re|un|dis|semi)-?/,Hs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Fs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ms=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Fs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Ls={tagSwitch:_i,checkSuffix:ds,checkRegex:gs,checkCase:cs,checkPrefix:fs,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(Zi(o,"Verb","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Zi(o,"Adjective","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")))},checkYear:Ps},Ws={checkAcronym:Is,neighbours:Ds,orgWords:Os,nounFallback:Vs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ss.test(l)&&!o[l]&&(l=l.replace(Ss,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Hs(e[t+1],n.afterWords);return o=o||Hs(e[t-1],n.beforeWords),o=o||Ms(e[t-1],n.beforeTags,a),o=o||Ms(e[t+1],n.afterTags,a),o}(e,t,i[o],r);$s[o]&&(u=$s[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Fs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Js=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Us={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Rs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const sl=/'/;var ll=function(e,t){let n=e[t].normal.split(sl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var ul=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const cl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},hl={in:!0,by:!0,for:!0};var dl=(e,t)=>{let n=e[t];if(cl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===hl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const ml=/'/,pl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},gl={d:(e,t)=>ll(e,t),t:(e,t)=>ul(e,t),s:(e,t,n)=>dl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):il(e,t)},fl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var vl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===ml.test(r[o].normal)&&([,i]=r[o].normal.split(ml));let s=null;gl.hasOwnProperty(i)&&(s=gl[i](r,o,t)),s&&(s=fl(s,e),al(n,[a,o],s),pl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=rl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=nl},hooks:["contractionTwo"]};const bl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const yl=["i","we","they"];let wl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:bl+" #Person",tag:"Person",reason:"randy-smith"},{match:bl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${bl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:yl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:yl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:yl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Pl=null;var kl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Pl=Pl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Pl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:wl}},hooks:["postTagger"]};var Al=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))};var jl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Al(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};var Nl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Nl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var El={api:function(e){e.prototype.swap=xl}};p.plugin(Xs),p.plugin(vl),p.plugin(kl),p.plugin(jl),p.plugin(El);var Il=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Tl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Gl={this:"Noun",then:"Pivot"};var Dl=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Sl={compute:{chunks:function(e){const{document:t,world:n}=e;Dl(t),Cl(t),Bl(e,t,n),$l(t),Fl(t)}},api:function(e){e.prototype.chunks=Tl,e.prototype.clauses=Il},hooks:["chunks"]};const Hl=/'s$/;var Ml=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Ll=/\(/,Wl=/\)/,Jl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ll,"");let t=e[e.length-1];t.post=t.post.replace(Wl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Kl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ul=RegExp("("+Object.keys(Kl).join("|")+")"),Rl=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Ul)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Ul,"");let t=e[e.length-1];t.post=t.post.replace(Rl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Zl=/\./g;var Yl=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var Xl=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const eu=(e,t)=>"number"==typeof t?e.eq(t):e,tu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var nu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=tu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=eu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=eu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=eu(t,e),new Adjectives(t.document,t.pointer)}};const ru=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},au=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let ou=[["emojis","emoji"],["atmentions","atMentions"]];var iu=function(e){au.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=ru,ou.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},su={api:function(e){iu(e),Ml(e),ql(e),_l(e),nu(e),Xl(e),Yl(e)}};const lu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var uu={case:e=>{lu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;lu(e,e=>e.text=n(e.text,t))},whitespace:e=>{lu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{lu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const cu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),hu="unicode|punctuation|whitespace|acronyms",du="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var pu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[t](this,e[t])}),this}}};var gu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const fu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var vu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var yu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:bu(e,t),isSubordinate:vu(e),root:t}};const wu=e=>e.text(),Pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),ku=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Au=function(e){let t=yu(e);return{root:wu(t.root),number:ku(t.number),determiner:wu(t.determiner),adjectives:Pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const ju={tags:!0};var Nu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,ju).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",ju),e};const xu={tags:!0};var Eu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,xu).tag("Singular","toPlural"),e};const Iu=(e,t)=>"number"==typeof t?e.eq(t):e;var Tu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Iu(this,e).map(yu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Au(t)),n},[])}isPlural(e){let t=this.filter(e=>yu(e).isPlural);return Iu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=yu(e).adjectives;n.found&&(t=t.concat(n))}),Iu(t,e)}toPlural(e){return Iu(this,e).map(e=>Nu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Eu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=gu(this);return t=Iu(t,e),new Nouns(this.document,t.pointer)}}};var Gu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Du=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Cu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Cu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Cu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Vu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const zu=/^([0-9,. ]+)\/([0-9,. ]+)$/,$u={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Fu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Su=function(e){if(!0===$u.hasOwnProperty(e))return $u[e];if("a"===e||"an"===e)return 1;const t=Du(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Mu(n),r=Mu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Mu(n);let a=r.text("reduced");return Hu.test(a)&&(a=a.replace(Hu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[a]:Mu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Mu(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var Ju=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const qu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ku=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Uu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ru=function(e){let t=[];if(e>100)return t;for(let n=0;n=qu[n][1]&&(e-=qu[n][1],t.push(qu[n][0]));return Ku[e]&&t.push(Ku[e]),t};var Qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ju(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Uu.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ru(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ju(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var _u=function(e){if(!e.numerator||!e.denominator)return"";return`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`};const Zu={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Yu=e=>{let t=Qu(e).split(" "),n=t[t.length-1];return Zu.hasOwnProperty(n)?t[t.length-1]=Zu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Xu=function(e){if(!e.numerator||!e.denominator)return"";let t=Qu({num:e.numerator}),n=Yu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const ec=(e,t)=>"number"==typeof t?e.eq(t):e;var tc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return ec(this,e).map(Wu)}get(e){return ec(this,e).map(Wu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Wu(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return ec(this,e).forEach(e=>{let t=Wu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Wu(e),n=_u(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Wu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Gu(this);return t=ec(t,e),new Fractions(this.document,t.pointer)}};const nc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var rc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+nc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+nc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+nc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+nc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${nc})`),r=e.has("("+nc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+nc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+nc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var ac=function(e){if("string"==typeof e)return{num:Su(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Wu(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Su(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var oc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ju(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const ic={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},sc={"%":"percent","°":"degrees"};var lc=function(e){let t={suffix:"",prefix:e.prefix};return ic.hasOwnProperty(e.prefix)&&(t.suffix+=" "+ic[e.prefix],t.prefix=""),sc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+sc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var uc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=lc(e);return t+Yu(e)+n}if("Ordinal"===t)return e.prefix+oc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=lc(e);return t+Qu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const cc=(e,t)=>"number"==typeof t?e.eq(t):e;var hc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return cc(this,e).map(ac)}get(e){return cc(this,e).map(ac).map(e=>e.num)}json(e){return cc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ac(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=ac(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=uc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ac(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=uc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>ac(t).num===e)}greaterThan(e){return this.filter(t=>ac(t).num>e)}lessThan(e){return this.filter(t=>ac(t).num{let r=ac(n).num;return r>e&&r{let n=ac(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=uc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=ac(e).num);let t=this.map(t=>{let n=ac(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=uc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=rc(this);return t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=rc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=rc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var dc={api:function(e){tc(e),hc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},pc=function(e={}){return!1!==(e=Object.assign({},mc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var gc={api:function(e){e.prototype.redact=pc}};var fc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var vc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var bc=function(e){let t=e.clauses(),n=vc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var yc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var wc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Pc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var kc=function(e){return e.verbs().toInfinitive(),e};const Ac=(e,t)=>"number"==typeof t?e.eq(t):e;var jc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=bc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ac(this,e).map(e=>(bc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(bc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(bc(e),e=Pc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(bc(e),kc(e)))}toNegative(e){return Ac(this,e).map(e=>(bc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(this,e).map(e=>(bc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ac(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ac(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ac(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=fc(this);return Ac(t,e)}};Object.assign(e.prototype,t)}};var Nc=function(e){return e.match("#Honorific+? #Person+")};var xc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Ec="male",Ic="female",Tc={mr:Ec,mrs:Ic,miss:Ic,madam:Ic,king:Ec,queen:Ic,duke:Ec,duchess:Ic,baron:Ec,baroness:Ic,count:Ec,countess:Ic,prince:Ec,princess:Ic,sire:Ec,dame:Ic,lady:Ic,ayatullah:Ec,congressman:Ec,congresswoman:Ic,"first lady":Ic,mx:null};var Gc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Ic;if(n.has("#MaleName"))return Ec;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Tc.hasOwnProperty(e))return Tc[e];if(/^her /.test(e))return Ic;if(/^his /.test(e))return Ec}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Ec;if(n&&!t)return Ic}return null};const Dc=(e,t)=>"number"==typeof t?e.eq(t):e;var Cc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Dc(this,e).map(xc)}json(e){return Dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=xc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Gc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Nc(this);return t=Dc(t,e),new People(this.document,t.pointer)}};var Oc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var Vc=function(e){e.prototype.places=function(t){let n=Oc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Bc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const zc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var $c=function(e){e.prototype.topics=zc};var Fc={api:function(e){Cc(e),Vc(e),Bc(e),$c(e)}};var Sc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Hc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Mc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Lc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Wc=function(e){return e.match("#Negative")},Jc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var qc=function(e){let t=e.clone();t.contractions().expand();const n=Hc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Mc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:Jc(n)}};const Kc={tense:"PresentTense"},Uc={conditional:!0},Rc={tense:"FutureTense"},Qc={progressive:!0},_c={tense:"PastTense"},Zc={complete:!0,progressive:!1},Yc={passive:!0},Xc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},eh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Kc]],["^wanted to #Infinitive$",[_c]],["^will want to #Infinitive$",[Rc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Rc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Rc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Qc]]],"future-progressive":[["^will be #Gerund$",[Rc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[_c,Zc]]],"past-perfect":[["^had #PastTense$",[_c,Zc]],["^had #PastTense to #Infinitive",[_c,Zc]]],"future-perfect":[["^will have #PastTense$",[Rc,Zc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[_c,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[_c,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Rc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[_c,Yc]],["^(was|were) being (#PastTense|#Participle)",[_c,Yc]],["^(had|have) been (#PastTense|#Participle)",[_c,Yc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Kc,Yc]],["^(is|are|am) being (#PastTense|#Participle)",[Kc,Yc]],["^has been (#PastTense|#Participle)",[Kc,Yc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Rc,Yc,Uc]],["will be being? (#PastTense|#Participle)",[Rc,Yc,Uc]]],"present-conditional":[["would be #PastTense",[Kc,Uc]]],"past-conditional":[["would have been #PastTense",[_c,Uc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Rc]]],"auxiliary-past":[["^did #Infinitive$",[_c,{plural:!1}]],["^used to #Infinitive$",[_c,Zc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,Zc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[_c]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let th=[];Object.keys(eh).map(e=>{eh[e].forEach(t=>{th.push({name:e,match:t[0],data:Xc(t[1])})})});var nh=th;var rh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),ah(r)&&(n.remove(r),r=n.last()),ah(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:oh(t,e)}};const sh=e=>e,lh=(e,t)=>{let n=ih(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},uh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ih(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ch=function(e,t){let n=ih(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},hh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},dh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,hh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ph=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},gh=function(e){return e&&e.isView?e.text("normal"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var vh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:ph(t.adverbs.pre),postAdverbs:ph(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const bh={tags:!0};var yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,hh(r)),i&&e.replace(r,i,bh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ch(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const wh={tags:!0},Ph={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,hh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ih(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,wh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ph.simple(e,t),e=Ph.noAux(e,t))},hasHad:e=>(e.replace("has","had",wh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),n(o,e.model).Participle}},kh={infinitive:Ph.simple,"simple-present":Ph.simple,"simple-past":sh,"simple-future":Ph.both,"present-progressive":e=>(e.replace("are","were",wh),e.replace("(is|are|am)","was",wh),e),"past-progressive":sh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ph.hasHad,"past-perfect":sh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=mh(e)),e.remove("have"),e),"present-perfect-progressive":Ph.hasHad,"past-perfect-progressive":sh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",wh),e),"passive-past":e=>(e.replace("have","had",wh),e),"passive-present":e=>(e.replace("(is|are)","was",wh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",wh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":sh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",wh),e),"auxiliary-past":sh,"auxiliary-present":e=>(e.replace("(do|does)","did",wh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",wh):(Ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":sh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",wh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph.simple(e,t),mh(e),e)};var Ah=function(e,t,n){return kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const jh={tags:!0},Nh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),!1===lh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=uh(e)),o&&(e=e.replace(a,o,jh)).not("#Particle").tag("PresentTense"),e},xh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),!1===lh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,jh)).not("#Particle").tag("Gerund"),e},Eh={infinitive:Nh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Nh(e,t);{let t=ih(e).subject;if(lh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,jh)}return e},"simple-past":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=uh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Nh(e,t),e=e.remove("will");return e},"present-progressive":sh,"past-progressive":(e,t)=>{let n=uh(e);return e.replace("(were|was)",n,jh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ih(e).subject;return lh(e)||n.has("i")?((e=dh(e,t)).remove("had"),e):(e.replace("had","has",jh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":sh,"past-perfect-progressive":e=>e.replace("had","has",jh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=uh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,jh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":sh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":sh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(xh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ch(e);return e.replace(t.auxiliary,n),e}return xh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":sh,"modal-infinitive":sh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,hh(r)),a&&(e=e.replace(t.root,a,jh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return lh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,jh),e.remove("will"),e}};var Ih=function(e,t,n){return Eh.hasOwnProperty(n)?((e=Eh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Th={tags:!0},Gh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,hh(r)),o&&(e=e.replace(r,o,Th)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Dh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,hh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Th),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ch={infinitive:Gh,"simple-present":Gh,"simple-past":Gh,"simple-future":sh,"present-progressive":Dh,"past-progressive":Dh,"future-progressive":sh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":sh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":sh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":sh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":sh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":sh,"modal-past":sh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Gh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Oh=function(e,t,n){return e.has("will")||e.has("going to")?e:Ch.hasOwnProperty(n)?((e=Ch[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Vh={tags:!0};var Bh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,hh(a));let s=r(i,e.model).Gerund;return s&&(s=`${uh(e)} ${s}`,e.replace(a,s,Vh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const zh={tags:!0},$h=function(e,t){let n=ch(e);return e.prepend(n+" not"),e},Fh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Sh=e=>e.has("(is|was|am|are|will|were|be)"),Hh={"simple-present":(e,t)=>!0===Sh(e)?Fh(e):(e=dh(e,t),e=$h(e)),"simple-past":(e,t)=>!0===Sh(e)?Fh(e):((e=dh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Sh(e)?Fh(e):$h(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",zh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=$h(e)).replace("wants","want",zh)};var Mh=function(e,t,n){if(e.has("#Negative"))return e;if(Hh.hasOwnProperty(n))return e=Hh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Sh(e)?Fh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Lh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Lh(this,e).map(qc)}json(e,t){return Lh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=vh(t),n},[])}subjects(e){return Lh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Bh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:yh(e.clone(),t,n.form).text("normal"),PastTense:Ah(e.clone(),t,n.form).text("normal"),PresentTense:Ih(e.clone(),t,n.form).text("normal"),FutureTense:Oh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Mh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Sc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};p.plugin(Sl),p.plugin(su),p.plugin(pu),p.plugin(Tu),p.plugin(dc),p.plugin(gc),p.plugin(jc),p.plugin(Fc),p.plugin(Wh);export{p as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index c486a1a31..7ad698706 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]);return e(a,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let a=this.update([t[e]]);return a._cache=n[e],a}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);return r.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(a.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):r):r;var o};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const I=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},j=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:a,world:r}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:j(e)?j(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(I(t.update([u]).firstTerm()),k(h,u,d,a)):(I(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var C=T,O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V,$={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const L=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=L(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=L(this.document,e);return this.document=t,this.all()}var r;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,M,W,K);var R={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Z=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Z)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},ge={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},pe=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(a[s].normal)&&([l,u]=a[s].normal.split(ce));let c=pe(o,a[s],l,u);!c&&ge.hasOwnProperty(u)&&(c=ge[u](a,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](a,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(c,e),Q(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]},ye=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ve.test(l)){let e=l.replace(ve,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]},Ae=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ee=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ne=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},De={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ae(e,this.world));var a;let r=je(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ae(e,this.world());return Ne(t)}}};const xe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Te=function(e,t){let{ptrs:n,byGroup:a}=e;return n=xe(n,t),Object.keys(a).forEach(e=>{a[e]=xe(a[e],t)}),{ptrs:n,byGroup:a}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Be=e=>e&&Ce(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Be(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e);if(Be(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Oe(e))return e.fullPointer.length>0;if(Be(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},Ve={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Fe=function(e,t){return[e[0],e[1],t[2]]},$e=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Se=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Fe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Fe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Je=He;const Me=Object.assign({},ze,Ve,Je);Me.lookBehind=Me.before,Me.lookBefore=Me.before,Me.lookAhead=Me.after,Me.lookAfter=Me.after,Me.notIf=Me.ifNo;var Le=function(e){Object.assign(e.prototype,Me)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ke=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,qe=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(We),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Ue(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?a.push(e):a=a.concat(e.split(qe))}),a=Ue(a),a};const Ze=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),at=e=>e.substring(0,e.length-1),rt=function(e){return e=nt(e),e=at(e)},ot=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===et(e)&&(n.end=!0,e=at(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=at(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=at(e)),"?"===et(e)&&(n.optional=!0,e=at(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=rt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){_e.test(e)?(n.choices=e.split(_e),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=at(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=rt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=rt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=rt(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Ze.test(e)&&(e=e.replace(Ze,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&st.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e},ut=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let a=0;a{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Qe(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),vt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||pt.test(e.post),hasComma:e=>yt(e,","),hasPeriod:e=>!0===yt(e,".")&&!1===yt(e,"..."),hasExclamation:e=>yt(e,"!"),hasQuestionMark:e=>yt(e,"?")||yt(e,"¿"),hasEllipses:e=>yt(e,"..")||yt(e,"…")||vt(e,"..")||vt(e,"…"),hasSemicolon:e=>yt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,a)):t.choices.some(t=>Pt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var At=Pt;const Et=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(It(e,e.t).length=a-e.t),e.t=a,!0)};const Gt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&At(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(It(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},xt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==At(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null},Tt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=At(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ct=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Bt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Tt(e),a.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ct(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=It(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},zt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Et(e,r)){if(!0!==At(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative&&!xt(r))return null;if(!0!==e.optional)return null}else if(!Bt(r))return null}else if(!Bt(r))return null}else if(!Bt(r))return null}else if(!Dt(r))return null}else if(!Nt(r))return null}else if(!jt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}},Vt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Ft=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},$t=function(e,t,n){let a=zt(e,t,0,e.length);return a?(a=Ft(a,n),a):null};var St={api:Le,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Vt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Jt=/^#./,Mt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Lt={html:function(e){let{starts:t,ends:n}=Mt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Kt,""),Rt.test(r)&&(r=" "),r=r.replace(qt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Kt,""),r="-"===r?" ":r.replace(Wt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Ut.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Zt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Zt.clean=Zt.normal,Zt.reduced=Zt.root;var _t=Zt;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const an=function(e,t){return Object.assign({},e,t)},rn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,an(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,an(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,an(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=rn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};rn.sentences=rn.sentence,rn.clean=rn.normal,rn.reduced=rn.root;const on={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},tn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&rn[o]&&(r[o]=rn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on,ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const un="";var cn={green:e=>""+e+un,red:e=>""+e+un,blue:e=>""+e+un,magenta:e=>""+e+un,cyan:e=>""+e+un,yellow:e=>""+e+un,black:e=>""+e+un,dim:e=>""+e+un,i:e=>""+e+un},hn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(cn.blue("\n ──────")),t.forEach(e=>{console.log(cn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=cn.blue(" │ ")+cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return cn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},dn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},gn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${cn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const mn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var pn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&_t.hasOwnProperty(e)?t=Object.assign({},_t[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},kn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Pn=function(e,t){let n=kn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a},An={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:kn,splitAll:Pn}}},En=function(e,t){let n=e.concat(t),a=kn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>wn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},jn=function(e,t){let n=kn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>wn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Nn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Dn={union:function(e){e=Gn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};Dn.and=Dn.union,Dn.intersection=function(e){e=Gn(e,this);let t=jn(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.not=function(e){e=Gn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.difference=Dn.not,Dn.complement=function(){let e=this.all(),t=In(e.fullPointer,this.fullPointer);return t=Nn(t,this.document),this.toView(t)},Dn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=En(e,[t])}),e=Nn(e,this.document),this.update(e)};var xn={methods:An,api:function(e){Object.assign(e.prototype,Dn)}};const Tn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Cn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Tn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Tn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Tn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e},On=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})},Bn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},zn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r},Vn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Cn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=On(r,t.hooks);return o=Bn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),zn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Vn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,r)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const $n=/ /,Sn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Hn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),$n.test(t))!function(e,t,n,a){let r=t.split($n);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Hn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nJn(e,t,n,a))};var Mn=Jn,Ln=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Wn({id:e})),t}return[Wn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Un=e=>"[object Array]"===Object.prototype.toString.call(e),Qn=e=>(e=e||"").trim(),Zn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Kn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:qn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Wn({});return e.forEach(e=>{if((e=Wn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Rn(t=e).forEach(Wn),t);var t},_n=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Rn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},Yn=function(e){let t=Rn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Xn={text:_n,txt:_n,array:Yn,flat:Yn},ea=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(_n(e,!0)),null):Xn.hasOwnProperty(t)?Xn[t](e):e},ta=e=>{Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},na=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Qn(e),!na.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Wn({});return new g$1(t)}add(e,t={}){if(Un(e))return e.forEach(e=>this.add(Qn(e),t)),this;e=Qn(e);let n=Wn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Qn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Rn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Rn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Rn(this.json)}fillDown(){var e;return e=this.json,Rn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Un(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ta(this.json);let e=Rn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ta(this.json),ea(this.json,e)}debug(){return ta(this.json),ea(this.json,"debug"),this}}const aa=function(e){let t=Zn(e);return new g$1(t)};aa.prototype.plugin=function(e){e(this)};var ra={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const oa=function(e){if(ra.hasOwnProperty(e.id))return ra[e.id];if(ra.hasOwnProperty(e.is))return ra[e.is];let t=e._cache.parents.find(e=>ra[e]);return ra[t]};var ia=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:oa(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const sa=function(e){return e?"string"==typeof e?[e]:e:[]};var la=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=sa(e[t].children),e[t].not=sa(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ua={one:{setTag:Mn,unTag:Ln,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=la(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return aa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ia(n)}}};const ca=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ha={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ca(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ca(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}},da=function(e){Object.assign(e.prototype,ha)},ga={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ma=new Set(["Auxiliary","Possessive"]);var pa={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ma.has(e)||!t.hasOwnProperty(n))return 1;if(ma.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ua,api:da,lib:ga};const fa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ba=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var ya=function(e){let t=[],n=e.split(ba);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Va=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Fa=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,$a=/['’]/,Sa=/^[a-z]\.([a-z]\.)+/i,Ha=/^[-+.][0-9]/,Ja=/^'[0-9]{2}/;var Ma=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Va,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Ha.test(e)?"'"===n&&Ja.test(e)?(n="",t):"":(n="",t)))).replace(Fa,r=>(a=r,$a.test(r)&&/[sn]['’]$/.test(t)&&!1===$a.test(n)?(a=a.replace($a,""),"'"):!0===Sa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},La=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Wa=/([A-Z]\.)+[A-Z]?,?$/,Ka=/^[A-Z]\.,?$/,qa=/[A-Z]{2,}('s|,)?$/,Ra=/([a-z]\.)+[a-z]\.?$/;var Ua=function(e){return function(e){return!0===Wa.test(e)||!0===Ra.test(e)||!0===Ka.test(e)||!0===qa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Qa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=La(a),a=n(a,t),a=Ua(a),e.normal=a},Za={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:ja,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ba);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Ta(n),n=Da(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ma(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Qa(e,t)}),n})}}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ya={},Xa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{Ya[t]=!0,Xa[t]="Abbreviation",void 0!==e[1]&&(Xa[t]=[Xa[t],e[1]])})});var er=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let tr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},nr={};Object.keys(tr).forEach((function(e){tr[e].split("").forEach((function(t){nr[t]=e}))}));const ar=/\//,rr=/[a-z]\.[a-z]/i,or=/[0-9]/;var ir=function(e,t){let n=e.normal||e.text;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),ar.test(n)&&!rr.test(n)&&!or.test(n)){let t=n.split(ar);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const sr=/^\p{Letter}+-\p{Letter}+$/u;var lr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),sr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ur=function(e){let t=0,n=0,a=e.document;for(let e=0;ecr(e,ir),machine:e=>cr(e,lr),normal:e=>cr(e,Qa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const mr={safe:!0,min:3};var pr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=dr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},mr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=gr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(vn),m.extend(St),m.extend(xn),m.extend(pa),m.plugin(be),m.extend(hr),m.plugin(f),m.extend(De),m.extend(pr),m.extend(Pe),m.extend(Fn);var fr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},br={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const yr=36,vr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wr=vr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var kr=function(e){if(void 0!==wr[e])return wr[e];let t=0,n=1,a=yr,r=1;for(;n=0;n--,r*=yr){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Pr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Er(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ir(br[e]);Dr.test(e)?Object.keys(t).forEach(t=>{if(Tr[t]=e,"Noun|Verb"===e){let e=Nr(t,Cr);Tr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{xr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","xr[e]="Emoticon"),delete xr[""],delete xr.null,delete xr[" "];const Or="Adjective";var Br={beforeTags:{Determiner:Or,Possessive:Or},afterTags:{Adjective:Or},beforeWords:{seem:Or,seemed:Or,seems:Or,feel:Or,feels:Or,felt:Or,appear:Or,appears:Or,appeared:Or,also:Or,over:Or,under:Or,too:Or,it:Or,but:Or,still:Or,really:Or,quite:Or,well:Or,very:Or,deeply:Or,profoundly:Or,extremely:Or,so:Or,badly:Or,mostly:Or,totally:Or,awfully:Or,rather:Or,nothing:Or,something:Or,anything:Or},afterWords:{too:Or,also:Or,or:Or}};const zr="Gerund";var Vr={beforeTags:{Adverb:zr,Preposition:zr,Conjunction:zr},afterTags:{Adverb:zr,Possessive:zr,Person:zr,Pronoun:zr,Determiner:zr,Copula:zr,Preposition:zr,Conjunction:zr,Comparative:zr},beforeWords:{been:zr,keep:zr,continue:zr,stop:zr,am:zr,be:zr,me:zr,began:zr,start:zr,starts:zr,started:zr,stops:zr,stopped:zr,help:zr,helps:zr,avoid:zr,avoids:zr,love:zr,loves:zr,loved:zr,hate:zr,hates:zr,hated:zr},afterWords:{you:zr,me:zr,her:zr,him:zr,them:zr,their:zr,it:zr,this:zr,there:zr,on:zr,about:zr,for:zr}},Fr={beforeTags:Object.assign({},Br.beforeTags,Vr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Br.afterTags,Vr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Br.beforeWords,Vr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Br.afterWords,Vr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const $r="Singular";var Sr={beforeTags:{Determiner:$r,Possessive:$r,Acronym:$r,Noun:$r,Adjective:$r,PresentTense:$r,Gerund:$r,PastTense:$r,Infinitive:$r,Date:$r},afterTags:{Value:$r,Modal:$r,Copula:$r,PresentTense:$r,PastTense:$r,Demonym:$r},beforeWords:{the:$r,with:$r,without:$r,of:$r,for:$r,any:$r,all:$r,on:$r,cut:$r,cuts:$r,save:$r,saved:$r,saves:$r,make:$r,makes:$r,made:$r,minus:$r,plus:$r,than:$r,another:$r,versus:$r,neither:$r,favorite:$r,best:$r,daily:$r,weekly:$r,linear:$r,binary:$r,mobile:$r,lexical:$r,technical:$r,computer:$r,scientific:$r,formal:$r},afterWords:{of:$r,system:$r,aid:$r,method:$r,utility:$r,tool:$r,reform:$r,therapy:$r,philosophy:$r,room:$r,authority:$r,says:$r,said:$r,wants:$r,wanted:$r}};const Hr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Jr={beforeTags:Object.assign({},Br.beforeTags,Sr.beforeTags,Hr.beforeTags),afterTags:Object.assign({},Br.afterTags,Sr.afterTags),beforeWords:Object.assign({},Br.beforeWords,Sr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Br.afterWords,Sr.afterWords)};const Mr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Lr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Wr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Kr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var qr={beforeTags:Object.assign({},Br.beforeTags,Mr),afterTags:Object.assign({},Br.afterTags,Lr),beforeWords:Object.assign({},Br.beforeWords,Wr),afterWords:Object.assign({},Br.afterWords,Kr)};const Rr="Infinitive";var Ur={beforeTags:{Modal:Rr,Adverb:Rr,Negative:Rr,Plural:Rr},afterTags:{Determiner:Rr,Adverb:Rr,Possessive:Rr,Preposition:Rr},beforeWords:{i:Rr,we:Rr,you:Rr,they:Rr,to:Rr,please:Rr,will:Rr,have:Rr,had:Rr,would:Rr,could:Rr,should:Rr,do:Rr,did:Rr,does:Rr,can:Rr,must:Rr,us:Rr,me:Rr,he:Rr,she:Rr,it:Rr,being:Rr},afterWords:{the:Rr,me:Rr,you:Rr,him:Rr,her:Rr,them:Rr,it:Rr,a:Rr,an:Rr,up:Rr,down:Rr,by:Rr,out:Rr,off:Rr,under:Rr,when:Rr,all:Rr,to:Rr,because:Rr,although:Rr,before:Rr,how:Rr,otherwise:Rr,together:Rr,though:Rr,yet:Rr}};const Qr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Zr={beforeTags:Object.assign({},Br.beforeTags,Ur.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Br.afterTags,Ur.afterTags,Qr.afterTags),beforeWords:Object.assign({},Br.beforeWords,Ur.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Br.afterWords,Ur.afterWords,{to:void 0})};const _r={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Yr={},Xr={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},eo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var to={beforeTags:Object.assign({},Vr.beforeTags,Sr.beforeTags,_r),afterTags:Object.assign({},Vr.afterTags,Sr.afterTags,Yr),beforeWords:Object.assign({},Vr.beforeWords,Sr.beforeWords,Xr),afterWords:Object.assign({},Vr.afterWords,Sr.afterWords,eo)},no={beforeTags:Object.assign({},Ur.beforeTags,Sr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ur.afterTags,Sr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ur.beforeWords,Sr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ur.afterWords,Sr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ao="Person";var ro={beforeTags:{Honorific:ao,Person:ao,Preposition:ao},afterTags:{Person:ao,ProperNoun:ao,Verb:ao},ownTags:{ProperNoun:ao},beforeWords:{hi:ao,hey:ao,yo:ao,dear:ao,hello:ao},afterWords:{said:ao,says:ao,told:ao,tells:ao,feels:ao,felt:ao,seems:ao,thinks:ao,thought:ao,spends:ao,spendt:ao,plays:ao,played:ao,sing:ao,sang:ao,learn:ao,learned:ao,wants:ao,wanted:ao}};const oo="Month",io={beforeTags:{Date:oo,Value:oo},afterTags:{Date:oo,Value:oo},beforeWords:{by:oo,in:oo,on:oo,during:oo,after:oo,before:oo,between:oo,until:oo,til:oo,sometime:oo,of:oo,this:oo,next:oo,last:oo,previous:oo,following:oo},afterWords:{sometime:oo,in:oo,of:oo,until:oo,the:oo}};var so={beforeTags:Object.assign({},ro.beforeTags,io.beforeTags),afterTags:Object.assign({},ro.afterTags,io.afterTags),beforeWords:Object.assign({},ro.beforeWords,io.beforeWords),afterWords:Object.assign({},ro.afterWords,io.afterWords)};const lo={Place:"Place"},uo={Place:"Place",Abbreviation:"Place"},co={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ho={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},go={"Adj|Gerund":Fr,"Adj|Noun":Jr,"Adj|Past":qr,"Adj|Present":Zr,"Noun|Verb":no,"Noun|Gerund":to,"Person|Noun":{beforeTags:Object.assign({},Sr.beforeTags,ro.beforeTags),afterTags:Object.assign({},Sr.afterTags,ro.afterTags),beforeWords:Object.assign({},Sr.beforeWords,ro.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Sr.afterWords,ro.afterWords)},"Person|Date":so,"Person|Verb":{beforeTags:Object.assign({},ro.beforeTags,Ur.beforeTags),afterTags:Object.assign({},ro.afterTags,Ur.afterTags),beforeWords:Object.assign({},ro.beforeWords,Ur.beforeWords),afterWords:Object.assign({},ro.afterWords,Ur.afterWords)},"Person|Place":{beforeTags:Object.assign({},lo,ro.beforeTags),afterTags:Object.assign({},uo,ro.afterTags),beforeWords:Object.assign({},co,ro.beforeWords),afterWords:Object.assign({},ho,ro.afterWords)}},mo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};go["Plural|Verb"]={beforeWords:mo(go["Noun|Verb"].beforeWords,{}),afterWords:mo(go["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:mo(go["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:mo(go["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var po=go;const fo="Adjective",bo="Infinitive",yo="PresentTense",vo="Singular",wo="PastTense",ko="Adverb",Po="Plural",Ao="Actor",Eo="Verb",Io="Noun",jo="LastName",Go="Modal",No="Participle";var Do=[null,null,{ea:vo,ia:Io,ic:fo,ly:ko,"'n":Eo,"'t":Eo},{oed:wo,ued:wo,xed:wo," so":ko,"'ll":Go,"'re":"Copula",azy:fo,eer:Io,end:Eo,ped:wo,ffy:fo,ify:bo,ing:"Gerund",ize:bo,ibe:bo,lar:fo,mum:fo,nes:yo,nny:fo,ous:fo,que:fo,rol:vo,sis:vo,ogy:vo,oid:vo,ian:vo,zes:yo,eld:wo,ken:No,ven:No,ten:No,ect:bo,ict:bo,ign:bo,ful:fo,bal:fo},{amed:wo,aped:wo,ched:wo,lked:wo,rked:wo,reed:wo,nded:wo,mned:fo,cted:wo,dged:wo,ield:vo,akis:jo,cede:bo,chuk:jo,czyk:jo,ects:yo,ends:Eo,enko:jo,ette:vo,wner:vo,fies:yo,fore:ko,gate:bo,gone:fo,ices:Po,ints:Po,ruct:bo,ines:Po,ions:Po,less:fo,llen:fo,made:fo,nsen:jo,oses:yo,ould:Go,some:fo,sson:jo,tion:vo,tage:Io,ique:vo,tive:fo,tors:Io,vice:vo,lier:vo,fier:vo,wned:wo,gent:vo,tist:vo,pist:vo,rist:vo,mist:vo,yist:vo,vist:vo,lite:vo,site:vo,rite:vo,mite:vo,bite:vo,mate:vo,date:vo,ndal:vo,vent:vo,uist:vo,gist:vo,note:vo,cide:vo,wide:fo,vide:bo,ract:bo,duce:bo,pose:bo,eive:bo,lyze:bo,lyse:bo,iant:fo,nary:fo},{elist:vo,holic:vo,phite:vo,tized:wo,urned:wo,eased:wo,ances:Po,bound:fo,ettes:Po,fully:ko,ishes:yo,ities:Po,marek:jo,nssen:jo,ology:Io,osome:vo,tment:vo,ports:Po,rough:fo,tches:yo,tieth:"Ordinal",tures:Po,wards:ko,where:ko,archy:Io,pathy:Io,opoly:Io,embly:Io,phate:Io,ndent:vo,scent:vo,onist:vo,anist:vo,alist:vo,olist:vo,icist:vo,ounce:bo,iable:fo,borne:fo,gnant:fo,inant:fo,igent:fo,atory:fo,rient:vo,dient:vo},{auskas:jo,parent:vo,cedent:vo,ionary:vo,cklist:vo,keeper:Ao,logist:Ao,teenth:"Value"},{opoulos:jo,borough:"Place",sdottir:jo}];const xo="Adjective",To="Noun",Co="Verb";var Oo=[null,null,{},{neo:To,bio:To,"de-":Co,"re-":Co,"un-":Co},{anti:To,auto:To,faux:xo,hexa:To,kilo:To,mono:To,nano:To,octa:To,poly:To,semi:xo,tele:To,"pro-":xo,"mis-":Co,"dis-":Co,"pre-":xo},{anglo:To,centi:To,ethno:To,ferro:To,grand:To,hepta:To,hydro:To,intro:To,macro:To,micro:To,milli:To,nitro:To,penta:To,quasi:xo,radio:To,tetra:To,"omni-":xo,"post-":xo},{pseudo:xo,"extra-":xo,"hyper-":xo,"inter-":xo,"intra-":xo,"deca-":xo},{electro:To}];const Bo="Adjective",zo="Infinitive",Vo="PresentTense",Fo="Singular",$o="PastTense",So="Adverb",Ho="Expression",Jo="Actor",Mo="Verb",Lo="Noun",Wo="LastName";var Ko={a:[[/.[aeiou]na$/,Lo,"tuna"],[/.[oau][wvl]ska$/,Wo],[/.[^aeiou]ica$/,Fo,"harmonica"],[/^([hyj]a+)+$/,Ho,"haha"]],c:[[/.[^aeiou]ic$/,Bo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,$o,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,$o,"rammed"],[/.[aeiou][sg]hed$/,$o,"gushed"],[/.[aeiou]red$/,$o,"hired"],[/.[aeiou]r?ried$/,$o,"hurried"],[/[^aeiou]ard$/,Fo,"steward"],[/[aeiou][^aeiou]id$/,Bo,""],[/.[vrl]id$/,Bo,"livid"],[/..led$/,$o,"hurled"],[/.[iao]sed$/,$o,""],[/[aeiou]n?[cs]ed$/,$o,""],[/[aeiou][rl]?[mnf]ed$/,$o,""],[/[aeiou][ns]?c?ked$/,$o,"bunked"],[/[aeiou]gned$/,$o],[/[aeiou][nl]?ged$/,$o],[/.[tdbwxyz]ed$/,$o],[/[^aeiou][aeiou][tvx]ed$/,$o],[/.[cdflmnprstv]ied$/,$o,"emptied"]],e:[[/.[lnr]ize$/,zo,"antagonize"],[/.[^aeiou]ise$/,zo,"antagonise"],[/.[aeiou]te$/,zo,"bite"],[/.[^aeiou][ai]ble$/,Bo,"fixable"],[/.[^aeiou]eable$/,Bo,"maleable"],[/.[ts]ive$/,Bo,"festive"],[/[a-z]-like$/,Bo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Bo,"cornish"],[/.v[iy]ch$/,Wo,"..ovich"],[/^ug?h+$/,Ho,"ughh"],[/^uh[ -]?oh$/,Ho,"uhoh"],[/[a-z]-ish$/,Bo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Wo,"polish-male"]],k:[[/^(k){2}$/,Ho,"kkkk"]],l:[[/.[gl]ial$/,Bo,"familial"],[/.[^aeiou]ful$/,Bo,"fitful"],[/.[nrtumcd]al$/,Bo,"natal"],[/.[^aeiou][ei]al$/,Bo,"familial"]],m:[[/.[^aeiou]ium$/,Fo,"magnesium"],[/[^aeiou]ism$/,Fo,"schism"],[/^[hu]m+$/,Ho,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Bo,"republican"],[/[^aeiou]ician$/,Jo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ho,"noooo"],[/^(yo)+$/,Ho,"yoo"],[/^wo{2,}[pt]?$/,Ho,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Fo],[/[^i]fer$/,zo],[/.[^aeiou][ao]pher$/,Jo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Bo],[/[aeiou].*ist$/,Bo],[/^[a-z]et$/,Mo]],s:[[/.[^aeiou]ises$/,Vo],[/.[rln]ates$/,Vo],[/.[^z]ens$/,Mo],[/.[lstrn]us$/,Fo],[/.[aeiou]sks$/,Vo],[/.[aeiou]kes$/,Vo],[/[aeiou][^aeiou]is$/,Fo],[/[a-z]'s$/,Lo],[/^yes+$/,Ho]],v:[[/.[^aeiou][ai][kln]ov$/,Wo]],y:[[/.[cts]hy$/,Bo],[/.[st]ty$/,Bo],[/.[tnl]ary$/,Bo],[/.[oe]ry$/,Fo],[/[rdntkbhs]ly$/,So],[/.(gg|bb|zz)ly$/,Bo],[/...lly$/,So],[/.[gk]y$/,Bo],[/[bszmp]{2}y$/,Bo],[/.[ai]my$/,Bo],[/[ea]{2}zy$/,Bo],[/.[^aeiou]ity$/,Fo]]};const qo="Verb",Ro="Noun";var Uo={leftTags:[["Adjective",Ro],["Possessive",Ro],["Determiner",Ro],["Adverb",qo],["Pronoun",qo],["Value",Ro],["Ordinal",Ro],["Modal",qo],["Superlative",Ro],["Demonym",Ro],["Honorific","Person"]],leftWords:[["i",qo],["first",Ro],["it",qo],["there",qo],["not",qo],["because",Ro],["if",Ro],["but",Ro],["who",qo],["this",Ro],["his",Ro],["when",Ro],["you",qo],["very","Adjective"],["old",Ro],["never",qo],["before",Ro],["a","Singular"],["the",Ro],["been",qo]],rightTags:[["Copula",Ro],["PastTense",Ro],["Conjunction",Ro],["Modal",Ro]],rightWords:[["there",qo],["me",qo],["man","Adjective"],["only",qo],["him",qo],["it",qo],["were",Ro],["took",Ro],["himself",qo],["went",Ro],["who",Ro],["jr","Person"]]},Qo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Zo={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},_o={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Yo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Xo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ei=/^.([0-9]+)/;var ti=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(ei);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ei,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},ai=/^([0-9]+)/,ri=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ai);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ai,"")]}(n[0],n[1])})};var oi=function(e={}){return(e=Object.assign({},e)).rules=ri(e.rules),e.rules=ni(e.rules),e.rev&&(e.rev=ri(e.rev),e.rev=ni(e.rev)),e.exceptions=ri(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ii=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const si=oi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),li=oi(Yo),ui=oi(Zo),ci=oi(_o),hi=ii(si),di=ii(li),gi=ii(ui),mi=ii(ci),pi=oi(Qo),fi=oi(Xo);var bi={fromPast:si,fromPresent:li,fromGerund:ui,fromParticiple:ci,toPast:hi,toPresent:di,toGerund:gi,toParticiple:mi,toComparative:pi,toSuperlative:fi,fromComparative:ii(pi),fromSuperlative:ii(fi)},yi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),vi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],wi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(ki[t].forEach(n=>e[n]=t),e),{});var Pi=ki,Ai=function(e){let t=e.substring(e.length-3);if(!0===Pi.hasOwnProperty(t))return Pi[t];let n=e.substring(e.length-2);return!0===Pi.hasOwnProperty(n)?Pi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ei={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ii=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Ai(e)),Ei.hasOwnProperty(e))c=Ei[e];else if("Participle"===n)c=ti(l,i);else if("PastTense"===n)c=ti(l,a);else if("PresentTense"===n)c=ti(l,r);else{if("Gerund"!==n)return e;c=ti(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},ji=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ti(i,n),PresentTense:ti(i,a),Gerund:ti(i,r),FutureTense:"will "+e},u=ti(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Gi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Ni="ically",Di=new Set(["analyt"+Ni,"chem"+Ni,"class"+Ni,"clin"+Ni,"crit"+Ni,"ecolog"+Ni,"electr"+Ni,"empir"+Ni,"frant"+Ni,"grammat"+Ni,"ident"+Ni,"ideolog"+Ni,"log"+Ni,"mag"+Ni,"mathemat"+Ni,"mechan"+Ni,"med"+Ni,"method"+Ni,"method"+Ni,"mus"+Ni,"phys"+Ni,"phys"+Ni,"polit"+Ni,"pract"+Ni,"rad"+Ni,"satir"+Ni,"statist"+Ni,"techn"+Ni,"technolog"+Ni,"theoret"+Ni,"typ"+Ni,"vert"+Ni,"whims"+Ni]),xi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ti=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ci={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Oi=function(e){return e.endsWith("ly")?Di.has(e)?e.replace(/ically/,"ical"):Ti.has(e)?null:Ci.hasOwnProperty(e)?Ci[e]:Gi(e,xi)||e:null};const Bi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Vi=function(e){if(zi.hasOwnProperty(e))return zi[e];let t=Gi(e,Bi);return t||e+"ly"};const Fi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],$i={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Si=new Set(["terrible","annoying"]),Hi=function(e,t){const n=t.two.models.toSuperlative;return ti(e,n)},Ji=function(e,t){const n=t.two.models.toComparative;return ti(e,n)};var Mi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Li={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Mi.hasOwnProperty(i)&&Mi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Nr,nounToSingular:wi,verbToInfinitive:Ii,getTense:Ai,verbConjugate:ji,adjToSuperlative:Hi,adjToComparative:Ji,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ti(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ti(e,n)},advToAdjective:Oi,adjToAdverb:Vi,adjToNoun:function(e){if($i.hasOwnProperty(e))return $i[e];if(Si.has(e))return null;let t=Gi(e,Fi);return t||e+"ness"}}}},Wi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Ki=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var qi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Ki(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ki(a,"Infinitive","Verb"),Object.assign(s,l),l=Ki(r,"Infinitive","Gerund"),Object.assign(s,l),l=Ki(o,"Adjective","Superlative"),Object.assign(s,l),l=Ki(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ri={two:{models:bi}};const Ui={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Qi=function(e,t){const n={model:t,methods:Li};let{lex:a,_multi:r}=Li.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Zi=function(e,t,n){let a=ji(e,Ri);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},_i=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Ui[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Zi(r,a,!1),"Adj|Present"===o&&(Zi(r,a,!0),function(e,t,n){let a=Hi(e,n);t[a]=t[a]||"Superlative";let r=Ji(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ii(r,Ri,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ii(r,Ri,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Qi(n,t)};let Yi={one:{_multiCache:{},lexicon:xr},two:{irregularPlurals:fr,models:bi,suffixPatterns:Do,prefixPatterns:Oo,endsWith:Ko,neighbours:Uo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Tr,clues:po,uncountable:{},orgWords:yi}};Yi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Qi(e.one.lexicon,e)).one.lexicon,e),e=_i(e.two.switches,e),e=qi(e),e=Wi(e)}(Yi);var Xi=Yi;const es=/^(under|over|mis|re|un|dis|semi)-?/;var ts=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(es.test(r.normal)){let e=r.normal.replace(es,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},ns=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const as={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},rs=new Set(["formulas","koalas","israelis","menus"]),os=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var is=function(e){if(!e||e.length<=3)return!1;if(rs.has(e))return!0;let t=e[e.length-1];return as.hasOwnProperty(t)?as[t].find(t=>e.endsWith(t)):"s"===t&&!os.find(t=>e.endsWith(t))};const ss=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ls=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(is(e.normal)?ns(e,"Plural","3-plural-guess"):ns(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ai(e.normal);t&&ns(e,t,"3-verb-tense-guess")}}(a)};const us=/^\p{Lu}[\p{Ll}'’]/u,cs=/[0-9]/,hs=["Date","Month","WeekDay","Unit"],ds=/^[IVXLCDM]{2,}$/,gs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ms={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ps=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===us.test(o)&&!1===cs.test(o)?hs.find(e=>a.tags.has(e))?null:(ls(e,t,n),a.tags.has("Noun")||a.tags.clear(),ns(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ds.test(o)&&gs.test(o)&&!ms[a.normal]?(ns(a,"RomanNumeral","2-xvii"),!0):null};const fs=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var bs=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=fs(a.normal,n.two.suffixPatterns);if(null!==e)return ns(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=fs(a.implicit,n.two.suffixPatterns),null!==e))return ns(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ys=/['‘’‛‵′`´]/,vs=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return ns(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Ps=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),As=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ps.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Es=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Is=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var js=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(As(r)||As(o))return ns(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Es(r)||Es(o))return ns(n,"Year","2-tagYear-close");if(Is(e[t-2])||Is(e[t+2]))return ns(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ns(n,"Year","2-tagYear-noun")}}}return null};const Gs=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Ds=/([A-Z]\.)+[A-Z]?,?$/,xs=/[A-Z]{2,}('s|,)?$/,Ts=/([a-z]\.)+[a-z]\.?$/,Cs={I:!0,A:!0};var Os=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ns.test(n)||n.length>5||Cs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ds.test(n)&&!0!==Ts.test(n)&&!0!==Gs.test(n)&&!0!==xs.test(n))}(a,n)?(a.tags.clear(),ns(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cs.hasOwnProperty(a.text)&&Gs.test(a.text)?(a.tags.clear(),ns(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(ns(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Ns.test(a.text)&&a.text.length<=6?(ns(a,"Acronym","3-titlecase-acronym"),!0):null};const Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},zs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Vs=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Bs(e[t-1],r),l=l||Bs(e[t+1],o),l=l||zs(e[t-1],a),l=l||zs(e[t+1],i),l)return ns(s,l,"3-[neighbour]"),ls(e,t,n),e[t].confidence=.2,!0}return null};const Fs=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var $s=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Fs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Fs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Ss=function(e,t,n){0===e[t].tags.size&&(ns(e[t],"Noun","3-[fallback]"),ls(e,t,n),e[t].confidence=.1)};const Hs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Js=(e,t,n)=>0!==t||e[1]?null:n;var Ms={"Adj|Gerund":(e,t)=>Hs(e,t),"Adj|Noun":(e,t)=>Hs(e,t),"Adj|Past":(e,t)=>Hs(e,t),"Adj|Present":(e,t)=>Hs(e,t),"Noun|Gerund":(e,t)=>Hs(e,t),"Noun|Verb":(e,t)=>Hs(e,t)||Js(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hs(e,t)||Js(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hs(e,t),"Person|Verb":(e,t)=>0!==t&&Hs(e,t)};const Ls="undefined"!=typeof process&&process.env?process.env:self.env||{},Ws=/^(under|over|mis|re|un|dis|semi)-?/,Ks=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ls.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},qs=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Ls.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Rs={tagSwitch:ts,checkSuffix:bs,checkRegex:ws,checkCase:ps,checkPrefix:ks,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(ns(o,"Verb","3-[prefix]"),ns(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(ns(o,"Adjective","3-[prefix]"),ns(o,"Prefix","3-[prefix]")))},checkYear:js},Us={checkAcronym:Os,neighbours:Vs,orgWords:$s,nounFallback:Ss,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Ws.test(l)&&!o[l]&&(l=l.replace(Ws,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Ks(e[t+1],n.afterWords);return o=o||Ks(e[t-1],n.beforeWords),o=o||qs(e[t-1],n.beforeTags,r),o=o||qs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ms[o]&&(u=Ms[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Ls.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Qs=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},Ys={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Xs={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const dl=/'/;var gl=function(e,t){let n=e[t].normal.split(dl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},ml=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},fl={in:!0,by:!0,for:!0};var bl=(e,t)=>{let n=e[t];if(pl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===fl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const yl=/'/,vl=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},wl={d:(e,t)=>gl(e,t),t:(e,t)=>ml(e,t),s:(e,t,n)=>bl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):hl(e,t)},kl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Pl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===yl.test(a[o].normal)&&([,i]=a[o].normal.split(yl));let s=null;wl.hasOwnProperty(i)&&(s=wl[i](a,o,t)),s&&(s=kl(s,e),ul(n,[r,o],s),vl(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ll.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=sl},hooks:["contractionTwo"]};const Al="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",El=["i","we","they"];let Il=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Al+" #Person",tag:"Person",reason:"randy-smith"},{match:Al+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Al}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:El,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:El,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:El,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),jl=null;var Gl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;jl=jl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(jl),e.uncache(),e}},model:{two:{matches:Il}},hooks:["postTagger"]},Nl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Dl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Nl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this},xl={api:function(e){e.prototype.swap=Dl}};return m.plugin(rl),m.plugin(Pl),m.plugin(Gl),m.plugin(xl),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);return r.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(a.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):r):r;var o};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const j=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},I=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:I(e)?I(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(j(t.update([u]).firstTerm()),k(h,u,d,a)):(j(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var C=T,O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V,$={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var J={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),L.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const M=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=M(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=M(this.document,e);return this.document=t,this.all()}var r;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,J,W,K);var U={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Q=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const ge=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},ye=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ge.test(a[s].normal)&&([l,u]=a[s].normal.split(ge));let c=ye(o,a[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](a,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](a,s)),c?(c=ve(c,e),Z(n,[i,s],c),pe(n[i],e,s,c.length)):me.test(a[s].normal)?(c=ue(a,s),c&&(c=ve(c,e),Z(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),pe(n[i],e,s,c.length))):(c=de(a,s),c&&(c=ve(c,e),Z(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Pe.test(l)){let e=l.replace(Pe,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},je={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]},Ie=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ge=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Te=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e},Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ie(e,this.world));var a;let r=De(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ie(e,this.world());return Te(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Be=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Oe(n,t),Object.keys(a).forEach(e=>{a[e]=Oe(a[e],t)}),{ptrs:n,byGroup:a}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),Ve=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,$e=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=$e(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Ve(e))return e.fullPointer.length>0;if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Ve(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=$e(e,n,this.world);let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},He={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},Je=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Me=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},We={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)}};We.split=We.splitAfter;var Ke=We;const qe=Object.assign({},Se,He,Ke);qe.lookBehind=qe.before,qe.lookBefore=qe.before,qe.lookAhead=qe.after,qe.lookAfter=qe.after,qe.notIf=qe.ifNo;var Ue=function(e){Object.assign(e.prototype,qe)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ze=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qe=/ /g,_e=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{_e(e)?n.push(e):n=n.concat(e.split(Ze))}),n=Ye(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||_e(e)?a.push(e):a=a.concat(e.split(Qe))}),a=Ye(a),a};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),rt=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===rt(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===rt(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===rt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===rt(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===rt(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===rt(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===rt(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===rt(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let a=n.choices.length-1;n.choices[a]=st(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===rt(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===rt(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===rt(e))return e=lt(e),n.chunk=at(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===rt(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=at(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&ht.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e},gt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return a.push(n(e.root,t.model)),a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},mt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let a=0;a{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},pt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Xe(e);return a=a.map(e=>ct(e,t)),a=dt(a,n),a=gt(a,n),a=mt(a),a};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),Et=(e,t)=>-1!==e.pre.indexOf(t),jt={hasQuote:e=>vt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||Et(e,"..")||Et(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>Pt.test(e.post)||Pt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};jt.hasQuotation=jt.hasQuote;var It=jt;let Gt=function(){};Gt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(yt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof It[t.method]&&!0===It[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Gt(e,t,n,a)):t.choices.some(t=>Gt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var Nt=Gt;const Dt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=a-e.t),e.t=a,!0)};const Ct=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Nt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Nt(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},zt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==Nt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null},Vt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Nt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Nt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ft=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},$t=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},St=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Vt(e),a.implicit&&e.terms[e.t+1]&&$t(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ft(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=xt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},Ht=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Dt(e,r)){if(!0!==Nt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative&&!zt(r))return null;if(!0!==e.optional)return null}else if(!St(r))return null}else if(!St(r))return null}else if(!St(r))return null}else if(!Bt(r))return null}else if(!Ot(r))return null}else if(!Tt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}},Lt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Jt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Mt=function(e,t,n){let a=Ht(e,t,0,e.length);return a?(a=Jt(a,n),a):null};var Wt={api:Ue,methods:{one:{termMethods:It,parseMatch:pt,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Mt(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,qt=/^#./,Ut=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Qt,""),Yt.test(r)&&(r=" "),r=r.replace(_t,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Qt,""),r="-"===r?" ":r.replace(Zt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Xt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let an=[],rn=0;for(;rn<64;)an[rn]=0|4294967296*Math.sin(++rn%Math.PI);function on(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(rn=i=0;rn>4]+an[i]+~~o[rn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},sn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&cn[o]&&(r[o]=cn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn,gn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const mn="";var pn={green:e=>""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n ──────")),t.forEach(e=>{console.log(pn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=pn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=pn.blue(" │ ")+pn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},yn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${pn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},Pn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},In=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Gn=function(e,t){let n=In(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a},Nn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:In,splitAll:Gn}}},Dn=function(e,t){let n=e.concat(t),a=In(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>jn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Tn=function(e,t){let n=In(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>jn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Bn={union:function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Bn.and=Bn.union,Bn.intersection=function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.not=function(e){e=Cn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.difference=Bn.not,Bn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Dn(e,[t])}),e=On(e,this.document),this.update(e)};var zn={methods:Nn,api:function(e){Object.assign(e.prototype,Bn)}};const Vn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Fn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Vn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Vn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Vn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e},$n=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})},Sn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},Hn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r},Ln=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Fn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=$n(r,t.hooks);return o=Sn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Hn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Ln(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Mn=/ /,Wn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Kn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Mn.test(t))!function(e,t,n,a){let r=t.split(Mn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Kn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,a))};var Un=qn,Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Zn({id:e})),t}return[Zn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),ea=e=>(e=e||"").trim(),ta=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:_n(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Zn({});return e.forEach(e=>{if((e=Zn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Zn),t);var t},na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Yn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},aa=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ra={text:na,txt:na,array:aa,flat:aa},oa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(na(e,!0)),null):ra.hasOwnProperty(t)?ra[t](e):e},ia=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sa=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=ea(e),!sa.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Zn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(ea(e),t)),this;e=ea(e);let n=Zn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=ea(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ia(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ia(this.json),oa(this.json,e)}debug(){return ia(this.json),oa(this.json,"debug"),this}}const la=function(e){let t=ta(e);return new g$1(t)};la.prototype.plugin=function(e){e(this)};var ua={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ca=function(e){if(ua.hasOwnProperty(e.id))return ua[e.id];if(ua.hasOwnProperty(e.is))return ua[e.is];let t=e._cache.parents.find(e=>ua[e]);return ua[t]};var ha=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ca(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const da=function(e){return e?"string"==typeof e?[e]:e:[]};var ga=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=da(e[t].children),e[t].not=da(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ma={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=ga(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return la(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ha(n)}}};const pa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),pa(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return pa(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}},ba=function(e){Object.assign(e.prototype,fa)},ya={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const va=new Set(["Auxiliary","Possessive"]);var wa={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(va.has(e)||!t.hasOwnProperty(n))return 1;if(va.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ma,api:ba,lib:ya};const ka=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Aa=function(e){let t=[],n=e.split(Pa);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const La=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ja=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ma=/['’]/,Wa=/^[a-z]\.([a-z]\.)+/i,Ka=/^[-+.][0-9]/,qa=/^'[0-9]{2}/;var Ua=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(La,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Ka.test(e)?"'"===n&&qa.test(e)?(n="",t):"":(n="",t)))).replace(Ja,r=>(a=r,Ma.test(r)&&/[sn]['’]$/.test(t)&&!1===Ma.test(n)?(a=a.replace(Ma,""),"'"):!0===Wa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ra=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Za=/([A-Z]\.)+[A-Z]?,?$/,Qa=/^[A-Z]\.,?$/,_a=/[A-Z]{2,}('s|,)?$/,Ya=/([a-z]\.)+[a-z]\.?$/;var Xa=function(e){return function(e){return!0===Za.test(e)||!0===Ya.test(e)||!0===Qa.test(e)||!0===_a.test(e)}(e)&&(e=e.replace(/\./g,"")),e},er=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ra(a),a=n(a,t),a=Xa(a),e.normal=a},tr={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:Ta,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Sa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Va(n),n=Ba(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ua(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{er(e,t)}),n})}}}},nr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ar={},rr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ar[t]=!0,rr[t]="Abbreviation",void 0!==e[1]&&(rr[t]=[rr[t],e[1]])})});var or=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ir={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},sr={};Object.keys(ir).forEach((function(e){ir[e].split("").forEach((function(t){sr[t]=e}))}));const lr=/\//,ur=/[a-z]\.[a-z]/i,cr=/[0-9]/;var hr=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),lr.test(n)&&!ur.test(n)&&!cr.test(n)){let t=n.split(lr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const dr=/^\p{Letter}+-\p{Letter}+$/u;var gr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),dr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},mr=function(e){let t=0,n=0,a=e.document;for(let e=0;epr(e,hr),machine:e=>pr(e,gr),normal:e=>pr(e,er),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const vr={safe:!0,min:3};var wr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=br},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},vr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=yr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(En),m.extend(Wt),m.extend(zn),m.extend(wa),m.plugin(we),m.extend(fr),m.plugin(f),m.extend(Ce),m.extend(wr),m.extend(je),m.extend(Jn);var kr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Pr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ar=36,Er="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",jr=Er.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ir=function(e){if(void 0!==jr[e])return jr[e];let t=0,n=1,a=Ar,r=1;for(;n=0;n--,r*=Ar){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Gr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Dr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xr(Pr[e]);Br.test(e)?Object.keys(t).forEach(t=>{if(Vr[t]=e,"Noun|Verb"===e){let e=Or(t,Fr);Vr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{zr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","zr[e]="Emoticon"),delete zr[""],delete zr.null,delete zr[" "];const $r="Adjective";var Sr={beforeTags:{Determiner:$r,Possessive:$r},afterTags:{Adjective:$r},beforeWords:{seem:$r,seemed:$r,seems:$r,feel:$r,feels:$r,felt:$r,appear:$r,appears:$r,appeared:$r,also:$r,over:$r,under:$r,too:$r,it:$r,but:$r,still:$r,really:$r,quite:$r,well:$r,very:$r,deeply:$r,profoundly:$r,extremely:$r,so:$r,badly:$r,mostly:$r,totally:$r,awfully:$r,rather:$r,nothing:$r,something:$r,anything:$r},afterWords:{too:$r,also:$r,or:$r}};const Hr="Gerund";var Lr={beforeTags:{Adverb:Hr,Preposition:Hr,Conjunction:Hr},afterTags:{Adverb:Hr,Possessive:Hr,Person:Hr,Pronoun:Hr,Determiner:Hr,Copula:Hr,Preposition:Hr,Conjunction:Hr,Comparative:Hr},beforeWords:{been:Hr,keep:Hr,continue:Hr,stop:Hr,am:Hr,be:Hr,me:Hr,began:Hr,start:Hr,starts:Hr,started:Hr,stops:Hr,stopped:Hr,help:Hr,helps:Hr,avoid:Hr,avoids:Hr,love:Hr,loves:Hr,loved:Hr,hate:Hr,hates:Hr,hated:Hr},afterWords:{you:Hr,me:Hr,her:Hr,him:Hr,them:Hr,their:Hr,it:Hr,this:Hr,there:Hr,on:Hr,about:Hr,for:Hr}},Jr={beforeTags:Object.assign({},Sr.beforeTags,Lr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Sr.afterTags,Lr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Sr.beforeWords,Lr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Sr.afterWords,Lr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Mr="Singular";var Wr={beforeTags:{Determiner:Mr,Possessive:Mr,Acronym:Mr,Noun:Mr,Adjective:Mr,PresentTense:Mr,Gerund:Mr,PastTense:Mr,Infinitive:Mr,Date:Mr},afterTags:{Value:Mr,Modal:Mr,Copula:Mr,PresentTense:Mr,PastTense:Mr,Demonym:Mr},beforeWords:{the:Mr,with:Mr,without:Mr,of:Mr,for:Mr,any:Mr,all:Mr,on:Mr,cut:Mr,cuts:Mr,save:Mr,saved:Mr,saves:Mr,make:Mr,makes:Mr,made:Mr,minus:Mr,plus:Mr,than:Mr,another:Mr,versus:Mr,neither:Mr,favorite:Mr,best:Mr,daily:Mr,weekly:Mr,linear:Mr,binary:Mr,mobile:Mr,lexical:Mr,technical:Mr,computer:Mr,scientific:Mr,formal:Mr},afterWords:{of:Mr,system:Mr,aid:Mr,method:Mr,utility:Mr,tool:Mr,reform:Mr,therapy:Mr,philosophy:Mr,room:Mr,authority:Mr,says:Mr,said:Mr,wants:Mr,wanted:Mr}};const Kr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qr={beforeTags:Object.assign({},Sr.beforeTags,Wr.beforeTags,Kr.beforeTags),afterTags:Object.assign({},Sr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Sr.beforeWords,Wr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sr.afterWords,Wr.afterWords)};const Ur={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Rr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Zr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var _r={beforeTags:Object.assign({},Sr.beforeTags,Ur),afterTags:Object.assign({},Sr.afterTags,Rr),beforeWords:Object.assign({},Sr.beforeWords,Zr),afterWords:Object.assign({},Sr.afterWords,Qr)};const Yr="Infinitive";var Xr={beforeTags:{Modal:Yr,Adverb:Yr,Negative:Yr,Plural:Yr},afterTags:{Determiner:Yr,Adverb:Yr,Possessive:Yr,Preposition:Yr},beforeWords:{i:Yr,we:Yr,you:Yr,they:Yr,to:Yr,please:Yr,will:Yr,have:Yr,had:Yr,would:Yr,could:Yr,should:Yr,do:Yr,did:Yr,does:Yr,can:Yr,must:Yr,us:Yr,me:Yr,he:Yr,she:Yr,it:Yr,being:Yr},afterWords:{the:Yr,me:Yr,you:Yr,him:Yr,her:Yr,them:Yr,it:Yr,a:Yr,an:Yr,up:Yr,down:Yr,by:Yr,out:Yr,off:Yr,under:Yr,when:Yr,all:Yr,to:Yr,because:Yr,although:Yr,before:Yr,how:Yr,otherwise:Yr,together:Yr,though:Yr,yet:Yr}};const eo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var to={beforeTags:Object.assign({},Sr.beforeTags,Xr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Sr.afterTags,Xr.afterTags,eo.afterTags),beforeWords:Object.assign({},Sr.beforeWords,Xr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sr.afterWords,Xr.afterWords,{to:void 0})};const no={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ao={},ro={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var io={beforeTags:Object.assign({},Lr.beforeTags,Wr.beforeTags,no),afterTags:Object.assign({},Lr.afterTags,Wr.afterTags,ao),beforeWords:Object.assign({},Lr.beforeWords,Wr.beforeWords,ro),afterWords:Object.assign({},Lr.afterWords,Wr.afterWords,oo)},so={beforeTags:Object.assign({},Xr.beforeTags,Wr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xr.afterTags,Wr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xr.beforeWords,Wr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xr.afterWords,Wr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const lo="Person";var uo={beforeTags:{Honorific:lo,Person:lo,Preposition:lo},afterTags:{Person:lo,ProperNoun:lo,Verb:lo},ownTags:{ProperNoun:lo},beforeWords:{hi:lo,hey:lo,yo:lo,dear:lo,hello:lo},afterWords:{said:lo,says:lo,told:lo,tells:lo,feels:lo,felt:lo,seems:lo,thinks:lo,thought:lo,spends:lo,spendt:lo,plays:lo,played:lo,sing:lo,sang:lo,learn:lo,learned:lo,wants:lo,wanted:lo}};const co="Month",ho={beforeTags:{Date:co,Value:co},afterTags:{Date:co,Value:co},beforeWords:{by:co,in:co,on:co,during:co,after:co,before:co,between:co,until:co,til:co,sometime:co,of:co,this:co,next:co,last:co,previous:co,following:co},afterWords:{sometime:co,in:co,of:co,until:co,the:co}};var go={beforeTags:Object.assign({},uo.beforeTags,ho.beforeTags),afterTags:Object.assign({},uo.afterTags,ho.afterTags),beforeWords:Object.assign({},uo.beforeWords,ho.beforeWords),afterWords:Object.assign({},uo.afterWords,ho.afterWords)};const mo={Place:"Place"},po={Place:"Place",Abbreviation:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let yo="Unit";const vo={"Adj|Gerund":Jr,"Adj|Noun":qr,"Adj|Past":_r,"Adj|Present":to,"Noun|Verb":so,"Noun|Gerund":io,"Person|Noun":{beforeTags:Object.assign({},Wr.beforeTags,uo.beforeTags),afterTags:Object.assign({},Wr.afterTags,uo.afterTags),beforeWords:Object.assign({},Wr.beforeWords,uo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Wr.afterWords,uo.afterWords)},"Person|Date":go,"Person|Verb":{beforeTags:Object.assign({},uo.beforeTags,Xr.beforeTags),afterTags:Object.assign({},uo.afterTags,Xr.afterTags),beforeWords:Object.assign({},uo.beforeWords,Xr.beforeWords),afterWords:Object.assign({},uo.afterWords,Xr.afterWords)},"Person|Place":{beforeTags:Object.assign({},mo,uo.beforeTags),afterTags:Object.assign({},po,uo.afterTags),beforeWords:Object.assign({},fo,uo.beforeWords),afterWords:Object.assign({},bo,uo.afterWords)},"Unit|Noun":{beforeTags:{Value:yo},afterTags:{},beforeWords:{per:yo,every:yo,each:yo,square:yo,cubic:yo,sq:yo,metric:yo},afterWords:{per:yo,squared:yo,cubed:yo,long:yo}}},wo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};vo["Plural|Verb"]={beforeWords:wo(vo["Noun|Verb"].beforeWords,{}),afterWords:wo(vo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wo(vo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wo(vo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ko=vo;const Po="Adjective",Ao="Infinitive",Eo="PresentTense",jo="Singular",Io="PastTense",Go="Adverb",No="Plural",Do="Actor",xo="Verb",To="Noun",Co="LastName",Oo="Modal",Bo="Participle";var zo=[null,null,{ea:jo,ia:To,ic:Po,ly:Go,"'n":xo,"'t":xo},{oed:Io,ued:Io,xed:Io," so":Go,"'ll":Oo,"'re":"Copula",azy:Po,eer:To,end:xo,ped:Io,ffy:Po,ify:Ao,ing:"Gerund",ize:Ao,ibe:Ao,lar:Po,mum:Po,nes:Eo,nny:Po,ous:Po,que:Po,rol:jo,sis:jo,ogy:jo,oid:jo,ian:jo,zes:Eo,eld:Io,ken:Bo,ven:Bo,ten:Bo,ect:Ao,ict:Ao,ign:Ao,ful:Po,bal:Po},{amed:Io,aped:Io,ched:Io,lked:Io,rked:Io,reed:Io,nded:Io,mned:Po,cted:Io,dged:Io,ield:jo,akis:Co,cede:Ao,chuk:Co,czyk:Co,ects:Eo,ends:xo,enko:Co,ette:jo,wner:jo,fies:Eo,fore:Go,gate:Ao,gone:Po,ices:No,ints:No,ruct:Ao,ines:No,ions:No,less:Po,llen:Po,made:Po,nsen:Co,oses:Eo,ould:Oo,some:Po,sson:Co,tion:jo,tage:To,ique:jo,tive:Po,tors:To,vice:jo,lier:jo,fier:jo,wned:Io,gent:jo,tist:jo,pist:jo,rist:jo,mist:jo,yist:jo,vist:jo,lite:jo,site:jo,rite:jo,mite:jo,bite:jo,mate:jo,date:jo,ndal:jo,vent:jo,uist:jo,gist:jo,note:jo,cide:jo,wide:Po,vide:Ao,ract:Ao,duce:Ao,pose:Ao,eive:Ao,lyze:Ao,lyse:Ao,iant:Po,nary:Po},{elist:jo,holic:jo,phite:jo,tized:Io,urned:Io,eased:Io,ances:No,bound:Po,ettes:No,fully:Go,ishes:Eo,ities:No,marek:Co,nssen:Co,ology:To,osome:jo,tment:jo,ports:No,rough:Po,tches:Eo,tieth:"Ordinal",tures:No,wards:Go,where:Go,archy:To,pathy:To,opoly:To,embly:To,phate:To,ndent:jo,scent:jo,onist:jo,anist:jo,alist:jo,olist:jo,icist:jo,ounce:Ao,iable:Po,borne:Po,gnant:Po,inant:Po,igent:Po,atory:Po,rient:jo,dient:jo},{auskas:Co,parent:jo,cedent:jo,ionary:jo,cklist:jo,keeper:Do,logist:Do,teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const Vo="Adjective",Fo="Noun",$o="Verb";var So=[null,null,{},{neo:Fo,bio:Fo,"de-":$o,"re-":$o,"un-":$o},{anti:Fo,auto:Fo,faux:Vo,hexa:Fo,kilo:Fo,mono:Fo,nano:Fo,octa:Fo,poly:Fo,semi:Vo,tele:Fo,"pro-":Vo,"mis-":$o,"dis-":$o,"pre-":Vo},{anglo:Fo,centi:Fo,ethno:Fo,ferro:Fo,grand:Fo,hepta:Fo,hydro:Fo,intro:Fo,macro:Fo,micro:Fo,milli:Fo,nitro:Fo,penta:Fo,quasi:Vo,radio:Fo,tetra:Fo,"omni-":Vo,"post-":Vo},{pseudo:Vo,"extra-":Vo,"hyper-":Vo,"inter-":Vo,"intra-":Vo,"deca-":Vo},{electro:Fo}];const Ho="Adjective",Lo="Infinitive",Jo="PresentTense",Mo="Singular",Wo="PastTense",Ko="Adverb",qo="Expression",Uo="Actor",Ro="Verb",Zo="Noun",Qo="LastName";var _o={a:[[/.[aeiou]na$/,Zo,"tuna"],[/.[oau][wvl]ska$/,Qo],[/.[^aeiou]ica$/,Mo,"harmonica"],[/^([hyj]a+)+$/,qo,"haha"]],c:[[/.[^aeiou]ic$/,Ho]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wo,"rammed"],[/.[aeiou][sg]hed$/,Wo,"gushed"],[/.[aeiou]red$/,Wo,"hired"],[/.[aeiou]r?ried$/,Wo,"hurried"],[/[^aeiou]ard$/,Mo,"steward"],[/[aeiou][^aeiou]id$/,Ho,""],[/.[vrl]id$/,Ho,"livid"],[/..led$/,Wo,"hurled"],[/.[iao]sed$/,Wo,""],[/[aeiou]n?[cs]ed$/,Wo,""],[/[aeiou][rl]?[mnf]ed$/,Wo,""],[/[aeiou][ns]?c?ked$/,Wo,"bunked"],[/[aeiou]gned$/,Wo],[/[aeiou][nl]?ged$/,Wo],[/.[tdbwxyz]ed$/,Wo],[/[^aeiou][aeiou][tvx]ed$/,Wo],[/.[cdflmnprstv]ied$/,Wo,"emptied"]],e:[[/.[lnr]ize$/,Lo,"antagonize"],[/.[^aeiou]ise$/,Lo,"antagonise"],[/.[aeiou]te$/,Lo,"bite"],[/.[^aeiou][ai]ble$/,Ho,"fixable"],[/.[^aeiou]eable$/,Ho,"maleable"],[/.[ts]ive$/,Ho,"festive"],[/[a-z]-like$/,Ho,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ho,"cornish"],[/.v[iy]ch$/,Qo,"..ovich"],[/^ug?h+$/,qo,"ughh"],[/^uh[ -]?oh$/,qo,"uhoh"],[/[a-z]-ish$/,Ho,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Qo,"polish-male"]],k:[[/^(k){2}$/,qo,"kkkk"]],l:[[/.[gl]ial$/,Ho,"familial"],[/.[^aeiou]ful$/,Ho,"fitful"],[/.[nrtumcd]al$/,Ho,"natal"],[/.[^aeiou][ei]al$/,Ho,"familial"]],m:[[/.[^aeiou]ium$/,Mo,"magnesium"],[/[^aeiou]ism$/,Mo,"schism"],[/^[hu]m+$/,qo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ho,"republican"],[/[^aeiou]ician$/,Uo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,qo,"noooo"],[/^(yo)+$/,qo,"yoo"],[/^wo{2,}[pt]?$/,qo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mo],[/[^i]fer$/,Lo],[/.[^aeiou][ao]pher$/,Uo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ho],[/[aeiou].*ist$/,Ho],[/^[a-z]et$/,Ro]],s:[[/.[^aeiou]ises$/,Jo],[/.[rln]ates$/,Jo],[/.[^z]ens$/,Ro],[/.[lstrn]us$/,Mo],[/.[aeiou]sks$/,Jo],[/.[aeiou]kes$/,Jo],[/[aeiou][^aeiou]is$/,Mo],[/[a-z]'s$/,Zo],[/^yes+$/,qo]],v:[[/.[^aeiou][ai][kln]ov$/,Qo]],y:[[/.[cts]hy$/,Ho],[/.[st]ty$/,Ho],[/.[tnl]ary$/,Ho],[/.[oe]ry$/,Mo],[/[rdntkbhs]ly$/,Ko],[/.(gg|bb|zz)ly$/,Ho],[/...lly$/,Ko],[/.[gk]y$/,Ho],[/[bszmp]{2}y$/,Ho],[/.[ai]my$/,Ho],[/[ea]{2}zy$/,Ho],[/.[^aeiou]ity$/,Mo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ai={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ri={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(ii);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ii,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},di=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const gi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),mi=hi(ri),pi=hi(ni),fi=hi(ai),bi=di(gi),yi=di(mi),vi=di(pi),wi=di(fi),ki=hi(ti),Pi=hi(oi);var Ai={fromPast:gi,fromPresent:mi,fromGerund:pi,fromParticiple:fi,toPast:bi,toPresent:yi,toGerund:vi,toParticiple:wi,toComparative:ki,toSuperlative:Pi,fromComparative:di(ki),fromSuperlative:di(Pi)},Ei=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),ji=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Ii=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Gi[t].forEach(n=>e[n]=t),e),{});var Ni=Gi,Di=function(e){let t=e.substring(e.length-3);if(!0===Ni.hasOwnProperty(t))return Ni[t];let n=e.substring(e.length-2);return!0===Ni.hasOwnProperty(n)?Ni[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const xi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ti=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Di(e)),xi.hasOwnProperty(e))c=xi[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,a);else if("PresentTense"===n)c=si(l,r);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ci=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,a),Gerund:si(i,r),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Oi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Bi="ically",zi=new Set(["analyt"+Bi,"chem"+Bi,"class"+Bi,"clin"+Bi,"crit"+Bi,"ecolog"+Bi,"electr"+Bi,"empir"+Bi,"frant"+Bi,"grammat"+Bi,"ident"+Bi,"ideolog"+Bi,"log"+Bi,"mag"+Bi,"mathemat"+Bi,"mechan"+Bi,"med"+Bi,"method"+Bi,"method"+Bi,"mus"+Bi,"phys"+Bi,"phys"+Bi,"polit"+Bi,"pract"+Bi,"rad"+Bi,"satir"+Bi,"statist"+Bi,"techn"+Bi,"technolog"+Bi,"theoret"+Bi,"typ"+Bi,"vert"+Bi,"whims"+Bi]),Vi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Fi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),$i={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?zi.has(e)?e.replace(/ically/,"ical"):Fi.has(e)?null:$i.hasOwnProperty(e)?$i[e]:Oi(e,Vi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Li={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ji=function(e){if(Li.hasOwnProperty(e))return Li[e];let t=Oi(e,Hi);return t||e+"ly"};const Mi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Wi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ki=new Set(["terrible","annoying"]),qi=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Or,nounToSingular:Ii,verbToInfinitive:Ti,getTense:Di,verbConjugate:Ci,adjToSuperlative:qi,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Ji,adjToNoun:function(e){if(Wi.hasOwnProperty(e))return Wi[e];if(Ki.has(e))return null;let t=Oi(e,Mi);return t||e+"ness"}}}},Qi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const _i=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=_i(n,"Infinitive","PastTense"),Object.assign(s,l),l=_i(a,"Infinitive","Verb"),Object.assign(s,l),l=_i(r,"Infinitive","Gerund"),Object.assign(s,l),l=_i(o,"Adjective","Superlative"),Object.assign(s,l),l=_i(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:Zi};let{lex:a,_multi:r}=Zi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},ns=function(e,t,n){let a=Ci(e,Xi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},as=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(r,a,!1),"Adj|Present"===o&&(ns(r,a,!0),function(e,t,n){let a=qi(e,n);t[a]=t[a]||"Superlative";let r=Ui(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ti(r,Xi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ti(r,Xi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let rs={one:{_multiCache:{},lexicon:zr},two:{irregularPlurals:kr,models:Ai,suffixPatterns:zo,prefixPatterns:So,endsWith:_o,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Vr,clues:ko,uncountable:{},orgWords:Ei}};rs=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=as(e.two.switches,e),e=Yi(e),e=Qi(e)}(rs);var os=rs;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(is.test(r.normal)){let e=r.normal.replace(is,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},ls=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const gs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ms=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Di(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(a)};const ps=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,bs=["Date","Month","WeekDay","Unit"],ys=/^[IVXLCDM]{2,}$/,vs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ks=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===ps.test(o)&&!1===fs.test(o)?bs.find(e=>a.tags.has(e))?null:(ms(e,t,n),a.tags.has("Noun")||a.tags.clear(),ls(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ys.test(o)&&vs.test(o)&&!ws[a.normal]?(ls(a,"RomanNumeral","2-xvii"),!0):null};const Ps=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var As=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Ps(a.normal,n.two.suffixPatterns);if(null!==e)return ls(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Ps(a.implicit,n.two.suffixPatterns),null!==e))return ls(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Es=/['‘’‛‵′`´]/,js=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return ls(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Ns=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ds=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ns.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},xs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ts=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Ds(r)||Ds(o))return ls(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(xs(r)||xs(o))return ls(n,"Year","2-tagYear-close");if(Ts(e[t-2])||Ts(e[t+2]))return ls(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Bs=/^[A-Z-]+$/,zs=/([A-Z]\.)+[A-Z]?,?$/,Vs=/[A-Z]{2,}('s|,)?$/,Fs=/([a-z]\.)+[a-z]\.?$/,$s={I:!0,A:!0};var Ss=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Bs.test(n)||n.length>5||$s.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==zs.test(n)&&!0!==Fs.test(n)&&!0!==Os.test(n)&&!0!==Vs.test(n))}(a,n)?(a.tags.clear(),ls(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!$s.hasOwnProperty(a.text)&&Os.test(a.text)?(a.tags.clear(),ls(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(ls(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Bs.test(a.text)&&a.text.length<=6?(ls(a,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ls=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Js=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],r),l=l||Hs(e[t+1],o),l=l||Ls(e[t-1],a),l=l||Ls(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ms(e,t,n),e[t].confidence=.2,!0}return null};const Ms=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Ws=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Ms(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Ms(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Ks=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ms(e,t,n),e[t].confidence=.1)};const qs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>qs(e,t),"Adj|Noun":(e,t)=>qs(e,t),"Adj|Past":(e,t)=>qs(e,t),"Adj|Present":(e,t)=>qs(e,t),"Noun|Gerund":(e,t)=>qs(e,t),"Noun|Verb":(e,t)=>qs(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>qs(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>qs(e,t),"Person|Verb":(e,t)=>0!==t&&qs(e,t)};const Zs="undefined"!=typeof process&&process.env?process.env:self.env||{},Qs=/^(under|over|mis|re|un|dis|semi)-?/,_s=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Zs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ys=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Zs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Is,checkCase:ks,checkPrefix:Gs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Js,orgWords:Ws,nounFallback:Ks,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Qs.test(l)&&!o[l]&&(l=l.replace(Qs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=_s(e[t+1],n.afterWords);return o=o||_s(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,r),o=o||Ys(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Rs[o]&&(u=Rs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Zs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},rl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const yl=/'/;var vl=function(e,t){let n=e[t].normal.split(yl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const kl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Pl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(kl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Pl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const El=/'/,jl=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},Il={d:(e,t)=>vl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bl(e,t)},Gl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Nl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===El.test(a[o].normal)&&([,i]=a[o].normal.split(El));let s=null;Il.hasOwnProperty(i)&&(s=Il[i](a,o,t)),s&&(s=Gl(s,e),pl(n,[r,o],s),jl(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ml.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=gl},hooks:["contractionTwo"]};const Dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",xl=["i","we","they"];let Tl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Dl+" #Person",tag:"Person",reason:"randy-smith"},{match:Dl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Dl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:xl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:xl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:xl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Cl=Cl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Tl}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter((e,t)=>n.some(e=>a[t].has(e)))},zl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Bl(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}},Vl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Fl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Vl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this},$l={api:function(e){e.prototype.swap=Fl}};return m.plugin(cl),m.plugin(Nl),m.plugin(Ol),m.plugin(zl),m.plugin($l),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs index d277e6ed2..45a3c8855 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1,2 +1,2 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]);return e(a,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let a=this.update([t[e]]);return a._cache=n[e],a}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const I=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},j=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:a,world:r}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:j(e)?j(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(I(t.update([u]).firstTerm()),k(h,u,d,a)):(I(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(a.insertAfter(e),r.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this};var C=T;var O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),a=this;if(e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V;var $={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const L=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=L(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=L(this.document,e);return this.document=t,this.all()}var r;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,M,W,K);var R={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Z=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Z)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/'/,he=/^[0-9][^-–—]*[-–—].*?[0-9]/,de=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},ge={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},me={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},pe=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ce.test(a[s].normal)&&([l,u]=a[s].normal.split(ce));let c=pe(o,a[s],l,u);!c&&ge.hasOwnProperty(u)&&(c=ge[u](a,s,t)),!c&&me.hasOwnProperty(l)&&(c=me[l](a,s)),c?(c=fe(c,e),Q(n,[i,s],c),de(n[i],e,s,c.length)):he.test(a[s].normal)&&(c=ue(a,s),c&&(c=fe(c,e),Q(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t),de(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var ye=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ve.test(l)){let e=l.replace(ve,"");if(i.hasOwnProperty(e)&&e.length>3&&we.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Pe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]};var Ae=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ee=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Ne=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ge=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ne(e.goNext,void 0),e.failTo=Ne(e.failTo,0),e.endAs=Ne(e.endAs,null),e};var De={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ae(e,this.world));var a;let r=je(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ae(e,this.world());return Ge(t)}}};const xe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Te=function(e,t){let{ptrs:n,byGroup:a}=e;return n=xe(n,t),Object.keys(a).forEach(e=>{a[e]=xe(a[e],t)}),{ptrs:n,byGroup:a}},Ce=e=>"[object Object]"===Object.prototype.toString.call(e),Oe=e=>e&&Ce(e)&&!0===e.isView,Be=e=>e&&Ce(e)&&!0===e.isNet;var ze={matchOne:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e).eq(0);if(Be(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.intersection(e);if(Be(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Te(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Oe(e)){return e.fullPointer.length>0}if(Be(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Oe(e))return this.filter(t=>t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n,this.world));let r={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Oe(e))return this.filter(t=>!t.intersection(e).found);if(Be(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n,this.world));let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var Ve={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Fe=function(e,t){return[e[0],e[1],t[2]]},$e=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Se=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},He={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Fe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=$e(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Fe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Se(e,this)),this.update(o)}};He.split=He.splitAfter;var Je=He;const Me=Object.assign({},ze,Ve,Je);Me.lookBehind=Me.before,Me.lookBefore=Me.before,Me.lookAhead=Me.after,Me.lookAfter=Me.after,Me.notIf=Me.ifNo;var Le=function(e){Object.assign(e.prototype,Me)};const We=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ke=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,qe=/ /g,Re=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ue=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Qe=function(e){let t=e.split(We),n=[];t.forEach(e=>{Re(e)?n.push(e):n=n.concat(e.split(Ke))}),n=Ue(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Re(e)?a.push(e):a=a.concat(e.split(qe))}),a=Ue(a),a};const Ze=/\{([0-9]+)?(, *[0-9]*)?\}/,_e=/&&/,Ye=new RegExp(/^<\s*(\S+)\s*>/),Xe=e=>e.charAt(0).toUpperCase()+e.substring(1),et=e=>e.charAt(e.length-1),tt=e=>e.charAt(0),nt=e=>e.substring(1),at=e=>e.substring(0,e.length-1),rt=function(e){return e=nt(e),e=at(e)},ot=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===et(e)&&(n.end=!0,e=at(e)),"^"===tt(e)&&(n.start=!0,e=nt(e)),("["===tt(e)||"]"===et(e))&&(n.group=null,"["===tt(e)&&(n.groupStart=!0),"]"===et(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===tt(e))){const t=Ye.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===et(e)&&(n.greedy=!0,e=at(e)),"*"!==e&&"*"===et(e)&&"\\*"!==e&&(n.greedy=!0,e=at(e)),"?"===et(e)&&(n.optional=!0,e=at(e)),"!"===tt(e)&&(n.negative=!0,e=nt(e)),"~"===tt(e)&&"~"===et(e)&&e.length>2&&(e=rt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===tt(e)&&")"===et(e)){_e.test(e)?(n.choices=e.split(_e),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=nt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=at(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ot(e,t))),e=""}if("/"===tt(e)&&"/"===et(e))return e=rt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===tt(e)&&"}"===et(e))return e=rt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===tt(e)&&">"===et(e))return e=rt(e),n.chunk=Xe(e),n.greedy=!0,n;if("%"===tt(e)&&"%"===et(e))return e=rt(e),n.switch=e,n}return!0===Ze.test(e)&&(e=e.replace(Ze,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===tt(e)?(n.tag=nt(e),n.tag=Xe(n.tag),n):"@"===tt(e)?(n.method=nt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var it=ot;const st=/[a-z0-9][-–—][a-z]/i;var lt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&st.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e};var ut=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Qe(e);return a=a.map(e=>it(e,t)),a=lt(a,n),a=ut(a),a};const ht=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),vt=(e,t)=>-1!==e.pre.indexOf(t),wt={hasQuote:e=>mt.test(e.pre)||pt.test(e.post),hasComma:e=>yt(e,","),hasPeriod:e=>!0===yt(e,".")&&!1===yt(e,"..."),hasExclamation:e=>yt(e,"!"),hasQuestionMark:e=>yt(e,"?")||yt(e,"¿"),hasEllipses:e=>yt(e,"..")||yt(e,"…")||vt(e,"..")||vt(e,"…"),hasSemicolon:e=>yt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>ft.test(e.post)||ft.test(e.pre),hasDash:e=>bt.test(e.post)||bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};wt.hasQuotation=wt.hasQuote;var kt=wt;let Pt=function(){};Pt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof kt[t.method]&&!0===kt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Pt(e,t,n,a)):t.choices.some(t=>Pt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var At=Pt;const Et=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){It(e,e.t).length=a-e.t}return e.t=a,!0};const Nt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=At(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&At(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){It(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var xt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==At(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null};var Tt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=At(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&At(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ct=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var Ot=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Bt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Tt(e),a.implicit&&e.terms[e.t+1]&&Ot(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ct(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=It(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var zt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Et(e,r))if(!0!==At(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!xt(r))return null}if(!0!==e.optional)return null}else{if(!Bt(r))return null}else{if(!Bt(r))return null}else{if(!Bt(r))return null}else{if(!Dt(r))return null}else{if(!Gt(r))return null}else{if(!jt(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}};var Vt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Ft=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},$t=function(e,t,n){let a=zt(e,t,0,e.length);return a?(a=Ft(a,n),a):null};var St={api:Le,methods:{one:{termMethods:kt,parseMatch:ct,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=$t(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Vt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Ht=/^\../,Jt=/^#./,Mt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Ht.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Lt={html:function(e){let{starts:t,ends:n}=Mt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Kt,""),Rt.test(r)&&(r=" "),r=r.replace(qt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Kt,""),r="-"===r?" ":r.replace(Wt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Ut.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},Zt={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};Zt.clean=Zt.normal,Zt.reduced=Zt.root;var _t=Zt;let Yt=[],Xt=0;for(;Xt<64;)Yt[Xt]=0|4294967296*Math.sin(++Xt%Math.PI);function en(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Xt=i=0;Xt>4]+Yt[i]+~~o[Xt|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const tn={text:!0,terms:!0};let nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const an=function(e,t){return Object.assign({},e,t)},rn={text:e=>Qt(e,{keepPunct:!0},!1),normal:e=>Qt(e,an(_t.normal,{keepPunct:!0}),!1),implicit:e=>Qt(e,an(_t.implicit,{keepPunct:!0}),!1),machine:e=>Qt(e,nn,!1),root:e=>Qt(e,an(nn,{form:"root"}),!1),hash:e=>en(Qt(e,{keepPunct:!0},!1)),offset:e=>{let t=rn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};rn.sentences=rn.sentence,rn.clean=rn.normal,rn.reduced=rn.root;const on={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},tn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&rn[o]&&(r[o]=rn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};on.data=on.json;var sn=on;var ln=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var un={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(un.blue("\n ──────")),t.forEach(e=>{console.log(un.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=un.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=un.blue(" │ ")+un.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return un[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var hn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(un.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(un.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(un.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(un.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${un.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const gn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var mn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&_t.hasOwnProperty(e)?t=Object.assign({},_t[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},wn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var kn=function(e,t){let n=wn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a};var Pn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:wn,splitAll:kn}}};var An=function(e,t){let n=e.concat(t),a=wn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>vn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var In=function(e,t){let n=wn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>vn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Nn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Gn={union:function(e){e=jn(e,this);let t=An(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)}};Gn.and=Gn.union,Gn.intersection=function(e){e=jn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.not=function(e){e=jn(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.difference=Gn.not,Gn.complement=function(){let e=this.all(),t=En(e.fullPointer,this.fullPointer);return t=Nn(t,this.document),this.toView(t)},Gn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=An(e,[t])}),e=Nn(e,this.document),this.update(e)};var Dn={methods:Pn,api:function(e){Object.assign(e.prototype,Gn)}};const xn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Tn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(xn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(xn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=xn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Cn=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})};var On=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>a.has(e)).length>=e.minWant})})};var Bn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r};var zn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Tn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Cn(r,t.hooks);return o=On(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Bn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===zn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&(console.log(e),s(l,e.unTag,n,e.safe,r)),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Fn=/ /,$n=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Sn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Fn.test(t))!function(e,t,n,a){let r=t.split(Fn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Sn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nHn(e,t,n,a))};var Jn=Hn;var Mn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Ln({id:e})),t}return[Ln({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Rn=e=>"[object Array]"===Object.prototype.toString.call(e),Un=e=>(e=e||"").trim(),Qn=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Wn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Kn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Ln({});return e.forEach(e=>{if((e=Ln(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(qn(t=e).forEach(Ln),t);var t},Zn=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return qn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},_n=function(e){let t=qn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Yn={text:Zn,txt:Zn,array:_n,flat:_n},Xn=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Zn(e,!0)),null):Yn.hasOwnProperty(t)?Yn[t](e):e},ea=e=>{qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ta=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Un(e),!ta.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Ln({});return new g$1(t)}add(e,t={}){if(Rn(e))return e.forEach(e=>this.add(Un(e),t)),this;e=Un(e);let n=Ln({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Un(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return qn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=qn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return qn(this.json)}fillDown(){var e;return e=this.json,qn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Rn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ea(this.json);let e=qn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ea(this.json),Xn(this.json,e)}debug(){return ea(this.json),Xn(this.json,"debug"),this}}const na=function(e){let t=Qn(e);return new g$1(t)};na.prototype.plugin=function(e){e(this)};var aa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ra=function(e){if(aa.hasOwnProperty(e.id))return aa[e.id];if(aa.hasOwnProperty(e.is))return aa[e.is];let t=e._cache.parents.find(e=>aa[e]);return aa[t]};var oa=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ra(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ia=function(e){return e?"string"==typeof e?[e]:e:[]};var sa=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ia(e[t].children),e[t].not=ia(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var la={one:{setTag:Jn,unTag:Mn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=sa(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return na(t).cache().fillDown().out("array")}(Object.assign({},t,e));return oa(n)}}};const ua=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ca={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ua(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ua(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}};var ha=function(e){Object.assign(e.prototype,ca)};var da={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ga=new Set(["Auxiliary","Possessive"]);var ma={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ga.has(e)||!t.hasOwnProperty(n))return 1;if(ga.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:la,api:ha,lib:da};const pa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,fa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var ba=function(e){let t=[],n=e.split(fa);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const za=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Va=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Fa=/['’]/,$a=/^[a-z]\.([a-z]\.)+/i,Sa=/^[-+.][0-9]/,Ha=/^'[0-9]{2}/;var Ja=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(za,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Sa.test(e)?"'"===n&&Ha.test(e)?(n="",t):"":(n="",t)))).replace(Va,r=>(a=r,Fa.test(r)&&/[sn]['’]$/.test(t)&&!1===Fa.test(n)?(a=a.replace(Fa,""),"'"):!0===$a.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ma=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const La=/([A-Z]\.)+[A-Z]?,?$/,Wa=/^[A-Z]\.,?$/,Ka=/[A-Z]{2,}('s|,)?$/,qa=/([a-z]\.)+[a-z]\.?$/;var Ra=function(e){return function(e){return!0===La.test(e)||!0===qa.test(e)||!0===Wa.test(e)||!0===Ka.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ua=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ma(a),a=n(a,t),a=Ra(a),e.normal=a};var Qa={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:Ia,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Oa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=xa(n),n=Ga(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ja(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Ua(e,t)}),n})}}}};var Za={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Ya={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{_a[t]=!0,Ya[t]="Abbreviation",void 0!==e[1]&&(Ya[t]=[Ya[t],e[1]])})});var Xa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let er={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},tr={};Object.keys(er).forEach((function(e){er[e].split("").forEach((function(t){tr[t]=e}))}));const nr=/\//,ar=/[a-z]\.[a-z]/i,rr=/[0-9]/;var or=function(e,t){let n=e.normal||e.text;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),nr.test(n)&&!ar.test(n)&&!rr.test(n)){let t=n.split(nr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ir=/^\p{Letter}+-\p{Letter}+$/u;var sr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ir.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var lr=function(e){let t=0,n=0,a=e.document;for(let e=0;eur(e,or),machine:e=>ur(e,sr),normal:e=>ur(e,Ua),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const gr={safe:!0,min:3};var mr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=hr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},gr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=dr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(R),m.extend(yn),m.extend(St),m.extend(Dn),m.extend(ma),m.plugin(be),m.extend(cr),m.plugin(f),m.extend(De),m.extend(mr),m.extend(Pe),m.extend(Vn);var pr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},fr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8se,uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const br="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",yr=br.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var vr=function(e){if(void 0!==yr[e])return yr[e];let t=0,n=1,a=36,r=1;for(;n=0;n--,r*=36){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var wr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Pr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ar(fr[e]);Nr.test(e)?Object.keys(t).forEach(t=>{if(Dr[t]=e,"Noun|Verb"===e){let e=jr(t,xr);Dr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Gr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Gr[e]="Emoticon"),delete Gr[""],delete Gr.null,delete Gr[" "];const Tr="Adjective";var Cr={beforeTags:{Determiner:Tr,Possessive:Tr},afterTags:{Adjective:Tr},beforeWords:{seem:Tr,seemed:Tr,seems:Tr,feel:Tr,feels:Tr,felt:Tr,appear:Tr,appears:Tr,appeared:Tr,also:Tr,over:Tr,under:Tr,too:Tr,it:Tr,but:Tr,still:Tr,really:Tr,quite:Tr,well:Tr,very:Tr,deeply:Tr,profoundly:Tr,extremely:Tr,so:Tr,badly:Tr,mostly:Tr,totally:Tr,awfully:Tr,rather:Tr,nothing:Tr,something:Tr,anything:Tr},afterWords:{too:Tr,also:Tr,or:Tr}};const Or="Gerund";var Br={beforeTags:{Adverb:Or,Preposition:Or,Conjunction:Or},afterTags:{Adverb:Or,Possessive:Or,Person:Or,Pronoun:Or,Determiner:Or,Copula:Or,Preposition:Or,Conjunction:Or,Comparative:Or},beforeWords:{been:Or,keep:Or,continue:Or,stop:Or,am:Or,be:Or,me:Or,began:Or,start:Or,starts:Or,started:Or,stops:Or,stopped:Or,help:Or,helps:Or,avoid:Or,avoids:Or,love:Or,loves:Or,loved:Or,hate:Or,hates:Or,hated:Or},afterWords:{you:Or,me:Or,her:Or,him:Or,them:Or,their:Or,it:Or,this:Or,there:Or,on:Or,about:Or,for:Or}};var zr={beforeTags:Object.assign({},Cr.beforeTags,Br.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Cr.afterTags,Br.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Cr.beforeWords,Br.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Cr.afterWords,Br.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Vr="Singular";var Fr={beforeTags:{Determiner:Vr,Possessive:Vr,Acronym:Vr,Noun:Vr,Adjective:Vr,PresentTense:Vr,Gerund:Vr,PastTense:Vr,Infinitive:Vr,Date:Vr},afterTags:{Value:Vr,Modal:Vr,Copula:Vr,PresentTense:Vr,PastTense:Vr,Demonym:Vr},beforeWords:{the:Vr,with:Vr,without:Vr,of:Vr,for:Vr,any:Vr,all:Vr,on:Vr,cut:Vr,cuts:Vr,save:Vr,saved:Vr,saves:Vr,make:Vr,makes:Vr,made:Vr,minus:Vr,plus:Vr,than:Vr,another:Vr,versus:Vr,neither:Vr,favorite:Vr,best:Vr,daily:Vr,weekly:Vr,linear:Vr,binary:Vr,mobile:Vr,lexical:Vr,technical:Vr,computer:Vr,scientific:Vr,formal:Vr},afterWords:{of:Vr,system:Vr,aid:Vr,method:Vr,utility:Vr,tool:Vr,reform:Vr,therapy:Vr,philosophy:Vr,room:Vr,authority:Vr,says:Vr,said:Vr,wants:Vr,wanted:Vr}};const $r={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Sr={beforeTags:Object.assign({},Cr.beforeTags,Fr.beforeTags,$r.beforeTags),afterTags:Object.assign({},Cr.afterTags,Fr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,Fr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,Fr.afterWords)};const Hr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Jr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Mr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Lr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Wr={beforeTags:Object.assign({},Cr.beforeTags,Hr),afterTags:Object.assign({},Cr.afterTags,Jr),beforeWords:Object.assign({},Cr.beforeWords,Mr),afterWords:Object.assign({},Cr.afterWords,Lr)};const Kr="Infinitive";var qr={beforeTags:{Modal:Kr,Adverb:Kr,Negative:Kr,Plural:Kr},afterTags:{Determiner:Kr,Adverb:Kr,Possessive:Kr,Preposition:Kr},beforeWords:{i:Kr,we:Kr,you:Kr,they:Kr,to:Kr,please:Kr,will:Kr,have:Kr,had:Kr,would:Kr,could:Kr,should:Kr,do:Kr,did:Kr,does:Kr,can:Kr,must:Kr,us:Kr,me:Kr,he:Kr,she:Kr,it:Kr,being:Kr},afterWords:{the:Kr,me:Kr,you:Kr,him:Kr,her:Kr,them:Kr,it:Kr,a:Kr,an:Kr,up:Kr,down:Kr,by:Kr,out:Kr,off:Kr,under:Kr,when:Kr,all:Kr,to:Kr,because:Kr,although:Kr,before:Kr,how:Kr,otherwise:Kr,together:Kr,though:Kr,yet:Kr}};const Rr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Ur={beforeTags:Object.assign({},Cr.beforeTags,qr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Cr.afterTags,qr.afterTags,Rr.afterTags),beforeWords:Object.assign({},Cr.beforeWords,qr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Cr.afterWords,qr.afterWords,{to:void 0})};const Qr={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Zr={},_r={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Yr={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var Xr={beforeTags:Object.assign({},Br.beforeTags,Fr.beforeTags,Qr),afterTags:Object.assign({},Br.afterTags,Fr.afterTags,Zr),beforeWords:Object.assign({},Br.beforeWords,Fr.beforeWords,_r),afterWords:Object.assign({},Br.afterWords,Fr.afterWords,Yr)};var eo={beforeTags:Object.assign({},qr.beforeTags,Fr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},qr.afterTags,Fr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},qr.beforeWords,Fr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},qr.afterWords,Fr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const to="Person";var no={beforeTags:{Honorific:to,Person:to,Preposition:to},afterTags:{Person:to,ProperNoun:to,Verb:to},ownTags:{ProperNoun:to},beforeWords:{hi:to,hey:to,yo:to,dear:to,hello:to},afterWords:{said:to,says:to,told:to,tells:to,feels:to,felt:to,seems:to,thinks:to,thought:to,spends:to,spendt:to,plays:to,played:to,sing:to,sang:to,learn:to,learned:to,wants:to,wanted:to}};const ao="Month",ro={beforeTags:{Date:ao,Value:ao},afterTags:{Date:ao,Value:ao},beforeWords:{by:ao,in:ao,on:ao,during:ao,after:ao,before:ao,between:ao,until:ao,til:ao,sometime:ao,of:ao,this:ao,next:ao,last:ao,previous:ao,following:ao},afterWords:{sometime:ao,in:ao,of:ao,until:ao,the:ao}};var oo={beforeTags:Object.assign({},no.beforeTags,ro.beforeTags),afterTags:Object.assign({},no.afterTags,ro.afterTags),beforeWords:Object.assign({},no.beforeWords,ro.beforeWords),afterWords:Object.assign({},no.afterWords,ro.afterWords)};const io={Place:"Place"},so={Place:"Place",Abbreviation:"Place"},lo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},uo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const co={"Adj|Gerund":zr,"Adj|Noun":Sr,"Adj|Past":Wr,"Adj|Present":Ur,"Noun|Verb":eo,"Noun|Gerund":Xr,"Person|Noun":{beforeTags:Object.assign({},Fr.beforeTags,no.beforeTags),afterTags:Object.assign({},Fr.afterTags,no.afterTags),beforeWords:Object.assign({},Fr.beforeWords,no.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Fr.afterWords,no.afterWords)},"Person|Date":oo,"Person|Verb":{beforeTags:Object.assign({},no.beforeTags,qr.beforeTags),afterTags:Object.assign({},no.afterTags,qr.afterTags),beforeWords:Object.assign({},no.beforeWords,qr.beforeWords),afterWords:Object.assign({},no.afterWords,qr.afterWords)},"Person|Place":{beforeTags:Object.assign({},io,no.beforeTags),afterTags:Object.assign({},so,no.afterTags),beforeWords:Object.assign({},lo,no.beforeWords),afterWords:Object.assign({},uo,no.afterWords)}},ho=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};co["Plural|Verb"]={beforeWords:ho(co["Noun|Verb"].beforeWords,{}),afterWords:ho(co["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:ho(co["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:ho(co["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var go=co;const mo="Adjective",po="Infinitive",fo="PresentTense",bo="Singular",yo="PastTense",vo="Adverb",wo="Plural",ko="Verb",Po="LastName",Ao="Participle";var Eo=[null,null,{ea:bo,ia:"Noun",ic:mo,ly:vo,"'n":ko,"'t":ko},{oed:yo,ued:yo,xed:yo," so":vo,"'ll":"Modal","'re":"Copula",azy:mo,eer:"Noun",end:ko,ped:yo,ffy:mo,ify:po,ing:"Gerund",ize:po,ibe:po,lar:mo,mum:mo,nes:fo,nny:mo,ous:mo,que:mo,rol:bo,sis:bo,ogy:bo,oid:bo,ian:bo,zes:fo,eld:yo,ken:Ao,ven:Ao,ten:Ao,ect:po,ict:po,ign:po,ful:mo,bal:mo},{amed:yo,aped:yo,ched:yo,lked:yo,rked:yo,reed:yo,nded:yo,mned:mo,cted:yo,dged:yo,ield:bo,akis:Po,cede:po,chuk:Po,czyk:Po,ects:fo,ends:ko,enko:Po,ette:bo,wner:bo,fies:fo,fore:vo,gate:po,gone:mo,ices:wo,ints:wo,ruct:po,ines:wo,ions:wo,less:mo,llen:mo,made:mo,nsen:Po,oses:fo,ould:"Modal",some:mo,sson:Po,tion:bo,tage:"Noun",ique:bo,tive:mo,tors:"Noun",vice:bo,lier:bo,fier:bo,wned:yo,gent:bo,tist:bo,pist:bo,rist:bo,mist:bo,yist:bo,vist:bo,lite:bo,site:bo,rite:bo,mite:bo,bite:bo,mate:bo,date:bo,ndal:bo,vent:bo,uist:bo,gist:bo,note:bo,cide:bo,wide:mo,vide:po,ract:po,duce:po,pose:po,eive:po,lyze:po,lyse:po,iant:mo,nary:mo},{elist:bo,holic:bo,phite:bo,tized:yo,urned:yo,eased:yo,ances:wo,bound:mo,ettes:wo,fully:vo,ishes:fo,ities:wo,marek:Po,nssen:Po,ology:"Noun",osome:bo,tment:bo,ports:wo,rough:mo,tches:fo,tieth:"Ordinal",tures:wo,wards:vo,where:vo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:bo,scent:bo,onist:bo,anist:bo,alist:bo,olist:bo,icist:bo,ounce:po,iable:mo,borne:mo,gnant:mo,inant:mo,igent:mo,atory:mo,rient:bo,dient:bo},{auskas:Po,parent:bo,cedent:bo,ionary:bo,cklist:bo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Po,borough:"Place",sdottir:Po}];const Io="Adjective";var jo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Io,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Io,tele:"Noun","pro-":Io,"mis-":"Verb","dis-":"Verb","pre-":Io},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Io,radio:"Noun",tetra:"Noun","omni-":Io,"post-":Io},{pseudo:Io,"extra-":Io,"hyper-":Io,"inter-":Io,"intra-":Io,"deca-":Io},{electro:"Noun"}];const No="Adjective",Go="Infinitive",Do="PresentTense",xo="Singular",To="PastTense",Co="Expression",Oo="LastName";var Bo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Oo],[/.[^aeiou]ica$/,xo,"harmonica"],[/^([hyj]a+)+$/,Co,"haha"]],c:[[/.[^aeiou]ic$/,No]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,To,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,To,"rammed"],[/.[aeiou][sg]hed$/,To,"gushed"],[/.[aeiou]red$/,To,"hired"],[/.[aeiou]r?ried$/,To,"hurried"],[/[^aeiou]ard$/,xo,"steward"],[/[aeiou][^aeiou]id$/,No,""],[/.[vrl]id$/,No,"livid"],[/..led$/,To,"hurled"],[/.[iao]sed$/,To,""],[/[aeiou]n?[cs]ed$/,To,""],[/[aeiou][rl]?[mnf]ed$/,To,""],[/[aeiou][ns]?c?ked$/,To,"bunked"],[/[aeiou]gned$/,To],[/[aeiou][nl]?ged$/,To],[/.[tdbwxyz]ed$/,To],[/[^aeiou][aeiou][tvx]ed$/,To],[/.[cdflmnprstv]ied$/,To,"emptied"]],e:[[/.[lnr]ize$/,Go,"antagonize"],[/.[^aeiou]ise$/,Go,"antagonise"],[/.[aeiou]te$/,Go,"bite"],[/.[^aeiou][ai]ble$/,No,"fixable"],[/.[^aeiou]eable$/,No,"maleable"],[/.[ts]ive$/,No,"festive"],[/[a-z]-like$/,No,"woman-like"]],h:[[/.[^aeiouf]ish$/,No,"cornish"],[/.v[iy]ch$/,Oo,"..ovich"],[/^ug?h+$/,Co,"ughh"],[/^uh[ -]?oh$/,Co,"uhoh"],[/[a-z]-ish$/,No,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Oo,"polish-male"]],k:[[/^(k){2}$/,Co,"kkkk"]],l:[[/.[gl]ial$/,No,"familial"],[/.[^aeiou]ful$/,No,"fitful"],[/.[nrtumcd]al$/,No,"natal"],[/.[^aeiou][ei]al$/,No,"familial"]],m:[[/.[^aeiou]ium$/,xo,"magnesium"],[/[^aeiou]ism$/,xo,"schism"],[/^[hu]m+$/,Co,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,No,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Co,"noooo"],[/^(yo)+$/,Co,"yoo"],[/^wo{2,}[pt]?$/,Co,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,xo],[/[^i]fer$/,Go],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,No],[/[aeiou].*ist$/,No],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Do],[/.[rln]ates$/,Do],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,xo],[/.[aeiou]sks$/,Do],[/.[aeiou]kes$/,Do],[/[aeiou][^aeiou]is$/,xo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Co]],v:[[/.[^aeiou][ai][kln]ov$/,Oo]],y:[[/.[cts]hy$/,No],[/.[st]ty$/,No],[/.[tnl]ary$/,No],[/.[oe]ry$/,xo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,No],[/...lly$/,"Adverb"],[/.[gk]y$/,No],[/[bszmp]{2}y$/,No],[/.[ai]my$/,No],[/[ea]{2}zy$/,No],[/.[^aeiou]ity$/,xo]]};const zo="Verb",Vo="Noun";var Fo={leftTags:[["Adjective",Vo],["Possessive",Vo],["Determiner",Vo],["Adverb",zo],["Pronoun",zo],["Value",Vo],["Ordinal",Vo],["Modal",zo],["Superlative",Vo],["Demonym",Vo],["Honorific","Person"]],leftWords:[["i",zo],["first",Vo],["it",zo],["there",zo],["not",zo],["because",Vo],["if",Vo],["but",Vo],["who",zo],["this",Vo],["his",Vo],["when",Vo],["you",zo],["very","Adjective"],["old",Vo],["never",zo],["before",Vo],["a","Singular"],["the",Vo],["been",zo]],rightTags:[["Copula",Vo],["PastTense",Vo],["Conjunction",Vo],["Modal",Vo]],rightWords:[["there",zo],["me",zo],["man","Adjective"],["only",zo],["him",zo],["it",zo],["were",Vo],["took",Vo],["himself",zo],["went",Vo],["who",Vo],["jr","Person"]]},$o={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},So={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ho={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Jo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Mo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Lo=/^.([0-9]+)/;var Wo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(Lo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Lo,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},qo=/^([0-9]+)/,Ro=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(qo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(qo,"")]}(n[0],n[1])})};var Uo=function(e={}){return(e=Object.assign({},e)).rules=Ro(e.rules),e.rules=Ko(e.rules),e.rev&&(e.rev=Ro(e.rev),e.rev=Ko(e.rev)),e.exceptions=Ro(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var Qo=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const Zo=Uo({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),_o=Uo(Jo),Yo=Uo(So),Xo=Uo(Ho),ei=Qo(Zo),ti=Qo(_o),ni=Qo(Yo),ai=Qo(Xo),ri=Uo($o),oi=Uo(Mo);var ii={fromPast:Zo,fromPresent:_o,fromGerund:Yo,fromParticiple:Xo,toPast:ei,toPresent:ti,toGerund:ni,toParticiple:ai,toComparative:ri,toSuperlative:oi,fromComparative:Qo(ri),fromSuperlative:Qo(oi)},si=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),li=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ui=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(ci[t].forEach(n=>e[n]=t),e),{});var hi=ci;var di=function(e){let t=e.substring(e.length-3);if(!0===hi.hasOwnProperty(t))return hi[t];let n=e.substring(e.length-2);return!0===hi.hasOwnProperty(n)?hi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const gi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var mi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=di(e)),gi.hasOwnProperty(e))c=gi[e];else if("Participle"===n)c=Wo(l,i);else if("PastTense"===n)c=Wo(l,a);else if("PresentTense"===n)c=Wo(l,r);else{if("Gerund"!==n)return e;c=Wo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var pi=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Wo(i,n),PresentTense:Wo(i,a),Gerund:Wo(i,r),FutureTense:"will "+e},u=Wo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var fi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r)){return e.slice(0,n-a)+t[r.length][r]}}return null};const bi="ically",yi=new Set(["analyt"+bi,"chem"+bi,"class"+bi,"clin"+bi,"crit"+bi,"ecolog"+bi,"electr"+bi,"empir"+bi,"frant"+bi,"grammat"+bi,"ident"+bi,"ideolog"+bi,"log"+bi,"mag"+bi,"mathemat"+bi,"mechan"+bi,"med"+bi,"method"+bi,"method"+bi,"mus"+bi,"phys"+bi,"phys"+bi,"polit"+bi,"pract"+bi,"rad"+bi,"satir"+bi,"statist"+bi,"techn"+bi,"technolog"+bi,"theoret"+bi,"typ"+bi,"vert"+bi,"whims"+bi]),vi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],wi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),ki={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Pi=function(e){return e.endsWith("ly")?yi.has(e)?e.replace(/ically/,"ical"):wi.has(e)?null:ki.hasOwnProperty(e)?ki[e]:fi(e,vi)||e:null};const Ai=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ei={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ii=function(e){if(Ei.hasOwnProperty(e))return Ei[e];let t=fi(e,Ai);return t||e+"ly"};const ji=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ni={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Gi=new Set(["terrible","annoying"]);const Di=function(e,t){const n=t.two.models.toSuperlative;return Wo(e,n)},xi=function(e,t){const n=t.two.models.toComparative;return Wo(e,n)};var Ti={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ci={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ti.hasOwnProperty(i)&&Ti[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:jr,nounToSingular:ui,verbToInfinitive:mi,getTense:di,verbConjugate:pi,adjToSuperlative:Di,adjToComparative:xi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Wo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Wo(e,n)},advToAdjective:Pi,adjToAdverb:Ii,adjToNoun:function(e){if(Ni.hasOwnProperty(e))return Ni[e];if(Gi.has(e))return null;let t=fi(e,ji);return t||e+"ness"}}}};var Oi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Bi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var zi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Bi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Bi(a,"Infinitive","Verb"),Object.assign(s,l),l=Bi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Bi(o,"Adjective","Superlative"),Object.assign(s,l),l=Bi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Vi={two:{models:ii}};const Fi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},$i=function(e,t){const n={model:t,methods:Ci};let{lex:a,_multi:r}=Ci.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Si=function(e,t,n){let a=pi(e,Vi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Hi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Fi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Si(r,a,!1),"Adj|Present"===o&&(Si(r,a,!0),function(e,t,n){let a=Di(e,n);t[a]=t[a]||"Superlative";let r=xi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=mi(r,Vi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=mi(r,Vi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=$i(n,t)};let Ji={one:{_multiCache:{},lexicon:Gr},two:{irregularPlurals:pr,models:ii,suffixPatterns:Eo,prefixPatterns:jo,endsWith:Bo,neighbours:Fo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Dr,clues:go,uncountable:{},orgWords:si}};Ji=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=$i(e.one.lexicon,e)).one.lexicon,e),e=Hi(e.two.switches,e),e=zi(e),e=Oi(e)}(Ji);var Mi=Ji;const Li=/^(under|over|mis|re|un|dis|semi)-?/;var Wi=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(Li.test(r.normal)){let e=r.normal.replace(Li,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var Ki=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const qi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},Ri=new Set(["formulas","koalas","israelis","menus"]),Ui=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var Qi=function(e){if(!e||e.length<=3)return!1;if(Ri.has(e))return!0;let t=e[e.length-1];return qi.hasOwnProperty(t)?qi[t].find(t=>e.endsWith(t)):"s"===t&&!Ui.find(t=>e.endsWith(t))};const Zi=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var _i=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(Qi(e.normal)?Ki(e,"Plural","3-plural-guess"):Ki(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=di(e.normal);t&&Ki(e,t,"3-verb-tense-guess")}}(a)};const Yi=/^\p{Lu}[\p{Ll}'’]/u,Xi=/[0-9]/,es=["Date","Month","WeekDay","Unit"],ts=/^[IVXLCDM]{2,}$/,ns=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,as={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var rs=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===Yi.test(o)&&!1===Xi.test(o)?es.find(e=>a.tags.has(e))?null:(_i(e,t,n),a.tags.has("Noun")||a.tags.clear(),Ki(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ts.test(o)&&ns.test(o)&&!as[a.normal]?(Ki(a,"RomanNumeral","2-xvii"),!0):null};const os=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a)){return t[a.length][a]}}return null};var is=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=os(a.normal,n.two.suffixPatterns);if(null!==e)return Ki(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=os(a.implicit,n.two.suffixPatterns),null!==e))return Ki(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const ss=/['‘’‛‵′`´]/,ls=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return Ki(a,e,"2-prefix"),a.confidence=.5,!0}return null};const hs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),ds=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!hs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},gs=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ms=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ps=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(ds(r)||ds(o))return Ki(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(gs(r)||gs(o))return Ki(n,"Year","2-tagYear-close");if(ms(e[t-2])||ms(e[t+2]))return Ki(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return Ki(n,"Year","2-tagYear-noun")}}}return null};const fs=/^[A-Z]('s|,)?$/,bs=/^[A-Z-]+$/,ys=/([A-Z]\.)+[A-Z]?,?$/,vs=/[A-Z]{2,}('s|,)?$/,ws=/([a-z]\.)+[a-z]\.?$/,ks={I:!0,A:!0};var Ps=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===bs.test(n)||n.length>5||ks.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==ys.test(n)&&!0!==ws.test(n)&&!0!==fs.test(n)&&!0!==vs.test(n))}(a,n)?(a.tags.clear(),Ki(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!ks.hasOwnProperty(a.text)&&fs.test(a.text)?(a.tags.clear(),Ki(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(Ki(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&bs.test(a.text)&&a.text.length<=6?(Ki(a,"Acronym","3-titlecase-acronym"),!0):null};const As=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Es=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Is=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||As(e[t-1],r),l=l||As(e[t+1],o),l=l||Es(e[t-1],a),l=l||Es(e[t+1],i),l)return Ki(s,l,"3-[neighbour]"),_i(e,t,n),e[t].confidence=.2,!0}return null};const js=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Ns=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&js(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&js(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Gs=function(e,t,n){0===e[t].tags.size&&(Ki(e[t],"Noun","3-[fallback]"),_i(e,t,n),e[t].confidence=.1)};const Ds=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,xs=(e,t,n)=>0!==t||e[1]?null:n;var Ts={"Adj|Gerund":(e,t)=>Ds(e,t),"Adj|Noun":(e,t)=>Ds(e,t),"Adj|Past":(e,t)=>Ds(e,t),"Adj|Present":(e,t)=>Ds(e,t),"Noun|Gerund":(e,t)=>Ds(e,t),"Noun|Verb":(e,t)=>Ds(e,t)||xs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ds(e,t)||xs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ds(e,t),"Person|Verb":(e,t)=>0!==t&&Ds(e,t)};const Cs="undefined"!=typeof process&&process.env?process.env:self.env||{},Os=/^(under|over|mis|re|un|dis|semi)-?/,Bs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Cs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},zs=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Cs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Vs={tagSwitch:Wi,checkSuffix:is,checkRegex:us,checkCase:rs,checkPrefix:cs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(Ki(o,"Verb","3-[prefix]"),Ki(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(Ki(o,"Adjective","3-[prefix]"),Ki(o,"Prefix","3-[prefix]")))},checkYear:ps},Fs={checkAcronym:Ps,neighbours:Is,orgWords:Ns,nounFallback:Gs,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Os.test(l)&&!o[l]&&(l=l.replace(Os,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Bs(e[t+1],n.afterWords);return o=o||Bs(e[t-1],n.beforeWords),o=o||zs(e[t-1],n.beforeTags,r),o=o||zs(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Ts[o]&&(u=Ts[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Cs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},$s=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Js={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Ms={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Xs=/'/;var el=function(e,t){let n=e[t].normal.split(Xs)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const tl=/'/;var nl=function(e,t){let n=e[t].normal.split(tl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var al=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const rl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ol={in:!0,by:!0,for:!0};var il=(e,t)=>{let n=e[t];if(rl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!a.tags.has("Possessive")&&!(a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ol[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const sl=/'/,ll=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},ul={d:(e,t)=>nl(e,t),t:(e,t)=>al(e,t),s:(e,t,n)=>il(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):el(e,t)},cl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var hl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===sl.test(a[o].normal)&&([,i]=a[o].normal.split(sl));let s=null;ul.hasOwnProperty(i)&&(s=ul[i](a,o,t)),s&&(s=cl(s,e),Ys(n,[r,o],s),ll(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=_s.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Zs},hooks:["contractionTwo"]};const dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const gl=["i","we","they"];let ml=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:dl+" #Person",tag:"Person",reason:"randy-smith"},{match:dl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${dl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:gl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:gl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:gl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let pl=null;var fl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;pl=pl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(pl),e.uncache(),e}},model:{two:{matches:ml}},hooks:["postTagger"]};var bl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var yl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?bl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this};var vl={api:function(e){e.prototype.swap=yl}};m.plugin(Rs),m.plugin(hl),m.plugin(fl),m.plugin(vl);export{m as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const j=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},I=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:I(e)?I(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(j(t.update([u]).firstTerm()),k(h,u,d,a)):(j(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(a.insertAfter(e),r.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this};var C=T;var O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;if(e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V;var $={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var J={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),L.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const M=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=M(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=M(this.document,e);return this.document=t,this.all()}var r;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,J,W,K);var U={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Q=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const ge=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ge.test(a[s].normal)&&([l,u]=a[s].normal.split(ge));let c=ve(o,a[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](a,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](a,s)),c?(c=ye(c,e),Z(n,[i,s],c),pe(n[i],e,s,c.length)):me.test(a[s].normal)?(c=ue(a,s),c&&(c=ye(c,e),Z(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),pe(n[i],e,s,c.length))):(c=de(a,s),c&&(c=ye(c,e),Z(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Pe.test(l)){let e=l.replace(Pe,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var je={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]};var Ie=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ne=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Te=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};var Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ie(e,this.world));var a;let r=De(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ie(e,this.world());return Te(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Be=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Oe(n,t),Object.keys(a).forEach(e=>{a[e]=Oe(a[e],t)}),{ptrs:n,byGroup:a}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),Ve=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,$e=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=$e(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Ve(e)){return e.fullPointer.length>0}if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Ve(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=$e(e,n,this.world);let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var He={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},Je=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Me=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},We={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)}};We.split=We.splitAfter;var Ke=We;const qe=Object.assign({},Se,He,Ke);qe.lookBehind=qe.before,qe.lookBefore=qe.before,qe.lookAhead=qe.after,qe.lookAfter=qe.after,qe.notIf=qe.ifNo;var Ue=function(e){Object.assign(e.prototype,qe)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ze=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qe=/ /g,_e=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{_e(e)?n.push(e):n=n.concat(e.split(Ze))}),n=Ye(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||_e(e)?a.push(e):a=a.concat(e.split(Qe))}),a=Ye(a),a};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),rt=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===rt(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===rt(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===rt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===rt(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===rt(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===rt(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===rt(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===rt(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let a=n.choices.length-1;n.choices[a]=st(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===rt(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===rt(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===rt(e))return e=lt(e),n.chunk=at(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===rt(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=at(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&ht.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e};var gt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return a.push(n(e.root,t.model)),a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var mt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var pt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Xe(e);return a=a.map(e=>ct(e,t)),a=dt(a,n),a=gt(a,n),a=mt(a),a};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),Et=(e,t)=>-1!==e.pre.indexOf(t),jt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||Et(e,"..")||Et(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>Pt.test(e.post)||Pt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};jt.hasQuotation=jt.hasQuote;var It=jt;let Nt=function(){};Nt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof It[t.method]&&!0===It[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,a)):t.choices.some(t=>Nt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var Gt=Nt;const Dt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){xt(e,e.t).length=a-e.t}return e.t=a,!0};const Ct=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Gt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Gt(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){xt(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var zt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==Gt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null};var Vt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Gt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Gt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ft=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var $t=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var St=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Vt(e),a.implicit&&e.terms[e.t+1]&&$t(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ft(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=xt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var Ht=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Dt(e,r))if(!0!==Gt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!zt(r))return null}if(!0!==e.optional)return null}else{if(!St(r))return null}else{if(!St(r))return null}else{if(!St(r))return null}else{if(!Bt(r))return null}else{if(!Ot(r))return null}else{if(!Tt(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}};var Lt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Jt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Mt=function(e,t,n){let a=Ht(e,t,0,e.length);return a?(a=Jt(a,n),a):null};var Wt={api:Ue,methods:{one:{termMethods:It,parseMatch:pt,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Mt(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,qt=/^#./,Ut=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Qt,""),Yt.test(r)&&(r=" "),r=r.replace(_t,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Qt,""),r="-"===r?" ":r.replace(Zt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Xt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let an=[],rn=0;for(;rn<64;)an[rn]=0|4294967296*Math.sin(++rn%Math.PI);function on(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(rn=i=0;rn>4]+an[i]+~~o[rn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},sn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&cn[o]&&(r[o]=cn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn;var gn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var mn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var pn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(mn.blue("\n ──────")),t.forEach(e=>{console.log(mn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=mn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=mn.blue(" │ ")+mn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return mn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var fn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(mn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(mn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(mn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(mn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${mn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var yn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},jn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var In=function(e,t){let n=jn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a};var Nn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:jn,splitAll:In}}};var Gn=function(e,t){let n=e.concat(t),a=jn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>En(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var xn=function(e,t){let n=jn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>En(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Cn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},On={union:function(e){e=Tn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)}};On.and=On.union,On.intersection=function(e){e=Tn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.not=function(e){e=Tn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.difference=On.not,On.complement=function(){let e=this.all(),t=Dn(e.fullPointer,this.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Gn(e,[t])}),e=Cn(e,this.document),this.update(e)};var Bn={methods:Nn,api:function(e){Object.assign(e.prototype,On)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Vn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Fn=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})};var $n=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>a.has(e)).length>=e.minWant})})};var Sn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r};var Hn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Vn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Fn(r,t.hooks);return o=$n(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Sn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Jn=/ /,Mn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Jn.test(t))!function(e,t,n,a){let r=t.split(Jn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Wn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,a))};var qn=Kn;var Un=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Rn({id:e})),t}return[Rn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Yn=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),ea=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Zn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Qn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Rn({});return e.forEach(e=>{if((e=Rn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(_n(t=e).forEach(Rn),t);var t},ta=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return _n(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},na=function(e){let t=_n(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},aa={text:ta,txt:ta,array:na,flat:na},ra=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(ta(e,!0)),null):aa.hasOwnProperty(t)?aa[t](e):e},oa=e=>{_n(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ia=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Xn(e),!ia.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Rn({});return new g$1(t)}add(e,t={}){if(Yn(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Xn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return _n(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=_n(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return _n(this.json)}fillDown(){var e;return e=this.json,_n(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Yn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){oa(this.json);let e=_n(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return oa(this.json),ra(this.json,e)}debug(){return oa(this.json),ra(this.json,"debug"),this}}const sa=function(e){let t=ea(e);return new g$1(t)};sa.prototype.plugin=function(e){e(this)};var la={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ua=function(e){if(la.hasOwnProperty(e.id))return la[e.id];if(la.hasOwnProperty(e.is))return la[e.is];let t=e._cache.parents.find(e=>la[e]);return la[t]};var ca=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ua(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ha=function(e){return e?"string"==typeof e?[e]:e:[]};var da=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ha(e[t].children),e[t].not=ha(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var ga={one:{setTag:qn,unTag:Un,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=da(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return sa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ca(n)}}};const ma=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var pa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ma(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ma(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}};var fa=function(e){Object.assign(e.prototype,pa)};var ba={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const va=new Set(["Auxiliary","Possessive"]);var ya={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(va.has(e)||!t.hasOwnProperty(n))return 1;if(va.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ga,api:fa,lib:ba};const wa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ka=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Pa=function(e){let t=[],n=e.split(ka);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Ha=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,La=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ja=/['’]/,Ma=/^[a-z]\.([a-z]\.)+/i,Wa=/^[-+.][0-9]/,Ka=/^'[0-9]{2}/;var qa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ha,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Wa.test(e)?"'"===n&&Ka.test(e)?(n="",t):"":(n="",t)))).replace(La,r=>(a=r,Ja.test(r)&&/[sn]['’]$/.test(t)&&!1===Ja.test(n)?(a=a.replace(Ja,""),"'"):!0===Ma.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ua=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ra=/([A-Z]\.)+[A-Z]?,?$/,Za=/^[A-Z]\.,?$/,Qa=/[A-Z]{2,}('s|,)?$/,_a=/([a-z]\.)+[a-z]\.?$/;var Ya=function(e){return function(e){return!0===Ra.test(e)||!0===_a.test(e)||!0===Za.test(e)||!0===Qa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ua(a),a=n(a,t),a=Ya(a),e.normal=a};var er={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:xa,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split($a);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=za(n),n=Oa(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=qa(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Xa(e,t)}),n})}}}};var tr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let nr={},ar={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{nr[t]=!0,ar[t]="Abbreviation",void 0!==e[1]&&(ar[t]=[ar[t],e[1]])})});var rr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let or={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ir={};Object.keys(or).forEach((function(e){or[e].split("").forEach((function(t){ir[t]=e}))}));const sr=/\//,lr=/[a-z]\.[a-z]/i,ur=/[0-9]/;var cr=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),sr.test(n)&&!lr.test(n)&&!ur.test(n)){let t=n.split(sr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const hr=/^\p{Letter}+-\p{Letter}+$/u;var dr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),hr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var gr=function(e){let t=0,n=0,a=e.document;for(let e=0;emr(e,cr),machine:e=>mr(e,dr),normal:e=>mr(e,Xa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const vr={safe:!0,min:3};var yr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=fr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},vr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=br(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(An),m.extend(Wt),m.extend(Bn),m.extend(ya),m.plugin(we),m.extend(pr),m.plugin(f),m.extend(Ce),m.extend(yr),m.extend(je),m.extend(Ln);var wr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},kr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Pr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ar=Pr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Er=function(e){if(void 0!==Ar[e])return Ar[e];let t=0,n=1,a=36,r=1;for(;n=0;n--,r*=36){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var jr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Nr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Gr(kr[e]);Cr.test(e)?Object.keys(t).forEach(t=>{if(Br[t]=e,"Noun|Verb"===e){let e=Tr(t,zr);Br[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Or[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Or[e]="Emoticon"),delete Or[""],delete Or.null,delete Or[" "];const Vr="Adjective";var Fr={beforeTags:{Determiner:Vr,Possessive:Vr},afterTags:{Adjective:Vr},beforeWords:{seem:Vr,seemed:Vr,seems:Vr,feel:Vr,feels:Vr,felt:Vr,appear:Vr,appears:Vr,appeared:Vr,also:Vr,over:Vr,under:Vr,too:Vr,it:Vr,but:Vr,still:Vr,really:Vr,quite:Vr,well:Vr,very:Vr,deeply:Vr,profoundly:Vr,extremely:Vr,so:Vr,badly:Vr,mostly:Vr,totally:Vr,awfully:Vr,rather:Vr,nothing:Vr,something:Vr,anything:Vr},afterWords:{too:Vr,also:Vr,or:Vr}};const $r="Gerund";var Sr={beforeTags:{Adverb:$r,Preposition:$r,Conjunction:$r},afterTags:{Adverb:$r,Possessive:$r,Person:$r,Pronoun:$r,Determiner:$r,Copula:$r,Preposition:$r,Conjunction:$r,Comparative:$r},beforeWords:{been:$r,keep:$r,continue:$r,stop:$r,am:$r,be:$r,me:$r,began:$r,start:$r,starts:$r,started:$r,stops:$r,stopped:$r,help:$r,helps:$r,avoid:$r,avoids:$r,love:$r,loves:$r,loved:$r,hate:$r,hates:$r,hated:$r},afterWords:{you:$r,me:$r,her:$r,him:$r,them:$r,their:$r,it:$r,this:$r,there:$r,on:$r,about:$r,for:$r}};var Hr={beforeTags:Object.assign({},Fr.beforeTags,Sr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Fr.afterTags,Sr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Fr.beforeWords,Sr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Fr.afterWords,Sr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lr="Singular";var Jr={beforeTags:{Determiner:Lr,Possessive:Lr,Acronym:Lr,Noun:Lr,Adjective:Lr,PresentTense:Lr,Gerund:Lr,PastTense:Lr,Infinitive:Lr,Date:Lr},afterTags:{Value:Lr,Modal:Lr,Copula:Lr,PresentTense:Lr,PastTense:Lr,Demonym:Lr},beforeWords:{the:Lr,with:Lr,without:Lr,of:Lr,for:Lr,any:Lr,all:Lr,on:Lr,cut:Lr,cuts:Lr,save:Lr,saved:Lr,saves:Lr,make:Lr,makes:Lr,made:Lr,minus:Lr,plus:Lr,than:Lr,another:Lr,versus:Lr,neither:Lr,favorite:Lr,best:Lr,daily:Lr,weekly:Lr,linear:Lr,binary:Lr,mobile:Lr,lexical:Lr,technical:Lr,computer:Lr,scientific:Lr,formal:Lr},afterWords:{of:Lr,system:Lr,aid:Lr,method:Lr,utility:Lr,tool:Lr,reform:Lr,therapy:Lr,philosophy:Lr,room:Lr,authority:Lr,says:Lr,said:Lr,wants:Lr,wanted:Lr}};const Mr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Wr={beforeTags:Object.assign({},Fr.beforeTags,Jr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Fr.afterTags,Jr.afterTags),beforeWords:Object.assign({},Fr.beforeWords,Jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fr.afterWords,Jr.afterWords)};const Kr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},qr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ur={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Rr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zr={beforeTags:Object.assign({},Fr.beforeTags,Kr),afterTags:Object.assign({},Fr.afterTags,qr),beforeWords:Object.assign({},Fr.beforeWords,Ur),afterWords:Object.assign({},Fr.afterWords,Rr)};const Qr="Infinitive";var _r={beforeTags:{Modal:Qr,Adverb:Qr,Negative:Qr,Plural:Qr},afterTags:{Determiner:Qr,Adverb:Qr,Possessive:Qr,Preposition:Qr},beforeWords:{i:Qr,we:Qr,you:Qr,they:Qr,to:Qr,please:Qr,will:Qr,have:Qr,had:Qr,would:Qr,could:Qr,should:Qr,do:Qr,did:Qr,does:Qr,can:Qr,must:Qr,us:Qr,me:Qr,he:Qr,she:Qr,it:Qr,being:Qr},afterWords:{the:Qr,me:Qr,you:Qr,him:Qr,her:Qr,them:Qr,it:Qr,a:Qr,an:Qr,up:Qr,down:Qr,by:Qr,out:Qr,off:Qr,under:Qr,when:Qr,all:Qr,to:Qr,because:Qr,although:Qr,before:Qr,how:Qr,otherwise:Qr,together:Qr,though:Qr,yet:Qr}};const Yr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xr={beforeTags:Object.assign({},Fr.beforeTags,_r.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Fr.afterTags,_r.afterTags,Yr.afterTags),beforeWords:Object.assign({},Fr.beforeWords,_r.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fr.afterWords,_r.afterWords,{to:void 0})};const eo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},to={},no={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ro={beforeTags:Object.assign({},Sr.beforeTags,Jr.beforeTags,eo),afterTags:Object.assign({},Sr.afterTags,Jr.afterTags,to),beforeWords:Object.assign({},Sr.beforeWords,Jr.beforeWords,no),afterWords:Object.assign({},Sr.afterWords,Jr.afterWords,ao)};var oo={beforeTags:Object.assign({},_r.beforeTags,Jr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},_r.afterTags,Jr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},_r.beforeWords,Jr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},_r.afterWords,Jr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const io="Person";var so={beforeTags:{Honorific:io,Person:io,Preposition:io},afterTags:{Person:io,ProperNoun:io,Verb:io},ownTags:{ProperNoun:io},beforeWords:{hi:io,hey:io,yo:io,dear:io,hello:io},afterWords:{said:io,says:io,told:io,tells:io,feels:io,felt:io,seems:io,thinks:io,thought:io,spends:io,spendt:io,plays:io,played:io,sing:io,sang:io,learn:io,learned:io,wants:io,wanted:io}};const lo="Month",uo={beforeTags:{Date:lo,Value:lo},afterTags:{Date:lo,Value:lo},beforeWords:{by:lo,in:lo,on:lo,during:lo,after:lo,before:lo,between:lo,until:lo,til:lo,sometime:lo,of:lo,this:lo,next:lo,last:lo,previous:lo,following:lo},afterWords:{sometime:lo,in:lo,of:lo,until:lo,the:lo}};var co={beforeTags:Object.assign({},so.beforeTags,uo.beforeTags),afterTags:Object.assign({},so.afterTags,uo.afterTags),beforeWords:Object.assign({},so.beforeWords,uo.beforeWords),afterWords:Object.assign({},so.afterWords,uo.afterWords)};const ho={Place:"Place"},go={Place:"Place",Abbreviation:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fo="Unit";const bo={"Adj|Gerund":Hr,"Adj|Noun":Wr,"Adj|Past":Zr,"Adj|Present":Xr,"Noun|Verb":oo,"Noun|Gerund":ro,"Person|Noun":{beforeTags:Object.assign({},Jr.beforeTags,so.beforeTags),afterTags:Object.assign({},Jr.afterTags,so.afterTags),beforeWords:Object.assign({},Jr.beforeWords,so.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jr.afterWords,so.afterWords)},"Person|Date":co,"Person|Verb":{beforeTags:Object.assign({},so.beforeTags,_r.beforeTags),afterTags:Object.assign({},so.afterTags,_r.afterTags),beforeWords:Object.assign({},so.beforeWords,_r.beforeWords),afterWords:Object.assign({},so.afterWords,_r.afterWords)},"Person|Place":{beforeTags:Object.assign({},ho,so.beforeTags),afterTags:Object.assign({},go,so.afterTags),beforeWords:Object.assign({},mo,so.beforeWords),afterWords:Object.assign({},po,so.afterWords)},"Unit|Noun":{beforeTags:{Value:fo},afterTags:{},beforeWords:{per:fo,every:fo,each:fo,square:fo,cubic:fo,sq:fo,metric:fo},afterWords:{per:fo,squared:fo,cubed:fo,long:fo}}},vo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};bo["Plural|Verb"]={beforeWords:vo(bo["Noun|Verb"].beforeWords,{}),afterWords:vo(bo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:vo(bo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vo(bo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yo=bo;const wo="Adjective",ko="Infinitive",Po="PresentTense",Ao="Singular",Eo="PastTense",jo="Adverb",Io="Plural",No="Verb",Go="LastName",Do="Participle";var xo=[null,null,{ea:Ao,ia:"Noun",ic:wo,ly:jo,"'n":No,"'t":No},{oed:Eo,ued:Eo,xed:Eo," so":jo,"'ll":"Modal","'re":"Copula",azy:wo,eer:"Noun",end:No,ped:Eo,ffy:wo,ify:ko,ing:"Gerund",ize:ko,ibe:ko,lar:wo,mum:wo,nes:Po,nny:wo,ous:wo,que:wo,rol:Ao,sis:Ao,ogy:Ao,oid:Ao,ian:Ao,zes:Po,eld:Eo,ken:Do,ven:Do,ten:Do,ect:ko,ict:ko,ign:ko,ful:wo,bal:wo},{amed:Eo,aped:Eo,ched:Eo,lked:Eo,rked:Eo,reed:Eo,nded:Eo,mned:wo,cted:Eo,dged:Eo,ield:Ao,akis:Go,cede:ko,chuk:Go,czyk:Go,ects:Po,ends:No,enko:Go,ette:Ao,wner:Ao,fies:Po,fore:jo,gate:ko,gone:wo,ices:Io,ints:Io,ruct:ko,ines:Io,ions:Io,less:wo,llen:wo,made:wo,nsen:Go,oses:Po,ould:"Modal",some:wo,sson:Go,tion:Ao,tage:"Noun",ique:Ao,tive:wo,tors:"Noun",vice:Ao,lier:Ao,fier:Ao,wned:Eo,gent:Ao,tist:Ao,pist:Ao,rist:Ao,mist:Ao,yist:Ao,vist:Ao,lite:Ao,site:Ao,rite:Ao,mite:Ao,bite:Ao,mate:Ao,date:Ao,ndal:Ao,vent:Ao,uist:Ao,gist:Ao,note:Ao,cide:Ao,wide:wo,vide:ko,ract:ko,duce:ko,pose:ko,eive:ko,lyze:ko,lyse:ko,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:Eo,urned:Eo,eased:Eo,ances:Io,bound:wo,ettes:Io,fully:jo,ishes:Po,ities:Io,marek:Go,nssen:Go,ology:"Noun",osome:Ao,tment:Ao,ports:Io,rough:wo,tches:Po,tieth:"Ordinal",tures:Io,wards:jo,where:jo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ao,scent:Ao,onist:Ao,anist:Ao,alist:Ao,olist:Ao,icist:Ao,ounce:ko,iable:wo,borne:wo,gnant:wo,inant:wo,igent:wo,atory:wo,rient:Ao,dient:Ao},{auskas:Go,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Go,borough:"Place",sdottir:Go}];const To="Adjective";var Co=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:To,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:To,tele:"Noun","pro-":To,"mis-":"Verb","dis-":"Verb","pre-":To},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:To,radio:"Noun",tetra:"Noun","omni-":To,"post-":To},{pseudo:To,"extra-":To,"hyper-":To,"inter-":To,"intra-":To,"deca-":To},{electro:"Noun"}];const Oo="Adjective",Bo="Infinitive",zo="PresentTense",Vo="Singular",Fo="PastTense",$o="Expression",So="LastName";var Ho={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,So],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Oo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fo,"rammed"],[/.[aeiou][sg]hed$/,Fo,"gushed"],[/.[aeiou]red$/,Fo,"hired"],[/.[aeiou]r?ried$/,Fo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Oo,""],[/.[vrl]id$/,Oo,"livid"],[/..led$/,Fo,"hurled"],[/.[iao]sed$/,Fo,""],[/[aeiou]n?[cs]ed$/,Fo,""],[/[aeiou][rl]?[mnf]ed$/,Fo,""],[/[aeiou][ns]?c?ked$/,Fo,"bunked"],[/[aeiou]gned$/,Fo],[/[aeiou][nl]?ged$/,Fo],[/.[tdbwxyz]ed$/,Fo],[/[^aeiou][aeiou][tvx]ed$/,Fo],[/.[cdflmnprstv]ied$/,Fo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,Oo,"fixable"],[/.[^aeiou]eable$/,Oo,"maleable"],[/.[ts]ive$/,Oo,"festive"],[/[a-z]-like$/,Oo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oo,"cornish"],[/.v[iy]ch$/,So,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,So,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Oo,"familial"],[/.[^aeiou]ful$/,Oo,"fitful"],[/.[nrtumcd]al$/,Oo,"natal"],[/.[^aeiou][ei]al$/,Oo,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,$o,"noooo"],[/^(yo)+$/,$o,"yoo"],[/^wo{2,}[pt]?$/,$o,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vo],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,"Noun"],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,So]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,"Adverb"],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,Vo]]};const Lo="Verb",Jo="Noun";var Mo={leftTags:[["Adjective",Jo],["Possessive",Jo],["Determiner",Jo],["Adverb",Lo],["Pronoun",Lo],["Value",Jo],["Ordinal",Jo],["Modal",Lo],["Superlative",Jo],["Demonym",Jo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Jo],["it",Lo],["there",Lo],["not",Lo],["because",Jo],["if",Jo],["but",Jo],["who",Lo],["this",Jo],["his",Jo],["when",Jo],["you",Lo],["very","Adjective"],["old",Jo],["never",Lo],["before",Jo],["a","Singular"],["the",Jo],["been",Lo]],rightTags:[["Copula",Jo],["PastTense",Jo],["Conjunction",Jo],["Modal",Jo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Jo],["took",Jo],["himself",Lo],["went",Jo],["who",Jo],["jr","Person"]]},Wo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ko={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},qo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Uo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ro={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Zo=/^.([0-9]+)/;var Qo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(Zo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Zo,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},Yo=/^([0-9]+)/,Xo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Yo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Yo,"")]}(n[0],n[1])})};var ei=function(e={}){return(e=Object.assign({},e)).rules=Xo(e.rules),e.rules=_o(e.rules),e.rev&&(e.rev=Xo(e.rev),e.rev=_o(e.rev)),e.exceptions=Xo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ti=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const ni=ei({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ai=ei(Uo),ri=ei(Ko),oi=ei(qo),ii=ti(ni),si=ti(ai),li=ti(ri),ui=ti(oi),ci=ei(Wo),hi=ei(Ro);var di={fromPast:ni,fromPresent:ai,fromGerund:ri,fromParticiple:oi,toPast:ii,toPresent:si,toGerund:li,toParticiple:ui,toComparative:ci,toSuperlative:hi,fromComparative:ti(ci),fromSuperlative:ti(hi)},gi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var pi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(fi[t].forEach(n=>e[n]=t),e),{});var bi=fi;var vi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var wi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=vi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,a);else if("PresentTense"===n)c=Qo(l,r);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ki=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Qo(i,n),PresentTense:Qo(i,a),Gerund:Qo(i,r),FutureTense:"will "+e},u=Qo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var Pi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r)){return e.slice(0,n-a)+t[r.length][r]}}return null};const Ai="ically",Ei=new Set(["analyt"+Ai,"chem"+Ai,"class"+Ai,"clin"+Ai,"crit"+Ai,"ecolog"+Ai,"electr"+Ai,"empir"+Ai,"frant"+Ai,"grammat"+Ai,"ident"+Ai,"ideolog"+Ai,"log"+Ai,"mag"+Ai,"mathemat"+Ai,"mechan"+Ai,"med"+Ai,"method"+Ai,"method"+Ai,"mus"+Ai,"phys"+Ai,"phys"+Ai,"polit"+Ai,"pract"+Ai,"rad"+Ai,"satir"+Ai,"statist"+Ai,"techn"+Ai,"technolog"+Ai,"theoret"+Ai,"typ"+Ai,"vert"+Ai,"whims"+Ai]),ji=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ii=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ni={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Gi=function(e){return e.endsWith("ly")?Ei.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Ni.hasOwnProperty(e)?Ni[e]:Pi(e,ji)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],xi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ti=function(e){if(xi.hasOwnProperty(e))return xi[e];let t=Pi(e,Di);return t||e+"ly"};const Ci=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Oi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Bi=new Set(["terrible","annoying"]);const zi=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Vi=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)};var Fi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var $i={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Fi.hasOwnProperty(i)&&Fi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Tr,nounToSingular:pi,verbToInfinitive:wi,getTense:vi,verbConjugate:ki,adjToSuperlative:zi,adjToComparative:Vi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},advToAdjective:Gi,adjToAdverb:Ti,adjToNoun:function(e){if(Oi.hasOwnProperty(e))return Oi[e];if(Bi.has(e))return null;let t=Pi(e,Ci);return t||e+"ness"}}}};var Si=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Hi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Li=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Hi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Hi(a,"Infinitive","Verb"),Object.assign(s,l),l=Hi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Hi(o,"Adjective","Superlative"),Object.assign(s,l),l=Hi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ji={two:{models:di}};const Mi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},Wi=function(e,t){const n={model:t,methods:$i};let{lex:a,_multi:r}=$i.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Ki=function(e,t,n){let a=ki(e,Ji);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},qi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Mi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ki(r,a,!1),"Adj|Present"===o&&(Ki(r,a,!0),function(e,t,n){let a=zi(e,n);t[a]=t[a]||"Superlative";let r=Vi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(r,Ji,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=wi(r,Ji,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Wi(n,t)};let Ui={one:{_multiCache:{},lexicon:Or},two:{irregularPlurals:wr,models:di,suffixPatterns:xo,prefixPatterns:Co,endsWith:Ho,neighbours:Mo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Br,clues:yo,uncountable:{},orgWords:gi}};Ui=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Wi(e.one.lexicon,e)).one.lexicon,e),e=qi(e.two.switches,e),e=Li(e),e=Si(e)}(Ui);var Ri=Ui;const Zi=/^(under|over|mis|re|un|dis|semi)-?/;var Qi=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(Zi.test(r.normal)){let e=r.normal.replace(Zi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var _i=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const Yi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Xi=new Set(["formulas","koalas","israelis","menus"]),es=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ts=function(e){if(!e||e.length<=3)return!1;if(Xi.has(e))return!0;let t=e[e.length-1];return Yi.hasOwnProperty(t)?Yi[t].find(t=>e.endsWith(t)):"s"===t&&!es.find(t=>e.endsWith(t))};const ns=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var as=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(ts(e.normal)?_i(e,"Plural","3-plural-guess"):_i(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vi(e.normal);t&&_i(e,t,"3-verb-tense-guess")}}(a)};const rs=/^\p{Lu}[\p{Ll}'’]/u,os=/[0-9]/,is=["Date","Month","WeekDay","Unit"],ss=/^[IVXLCDM]{2,}$/,ls=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,us={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var cs=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===rs.test(o)&&!1===os.test(o)?is.find(e=>a.tags.has(e))?null:(as(e,t,n),a.tags.has("Noun")||a.tags.clear(),_i(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ss.test(o)&&ls.test(o)&&!us[a.normal]?(_i(a,"RomanNumeral","2-xvii"),!0):null};const hs=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a)){return t[a.length][a]}}return null};var ds=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=hs(a.normal,n.two.suffixPatterns);if(null!==e)return _i(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=hs(a.implicit,n.two.suffixPatterns),null!==e))return _i(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,ms=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return _i(a,e,"2-prefix"),a.confidence=.5,!0}return null};const bs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),vs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!bs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ys=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ws=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ks=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(vs(r)||vs(o))return _i(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ys(r)||ys(o))return _i(n,"Year","2-tagYear-close");if(ws(e[t-2])||ws(e[t+2]))return _i(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return _i(n,"Year","2-tagYear-noun")}}}return null};const Ps=/^[A-Z]('s|,)?$/,As=/^[A-Z-]+$/,Es=/([A-Z]\.)+[A-Z]?,?$/,js=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Ns={I:!0,A:!0};var Gs=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===As.test(n)||n.length>5||Ns.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Es.test(n)&&!0!==Is.test(n)&&!0!==Ps.test(n)&&!0!==js.test(n))}(a,n)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ns.hasOwnProperty(a.text)&&Ps.test(a.text)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(_i(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&As.test(a.text)&&a.text.length<=6?(_i(a,"Acronym","3-titlecase-acronym"),!0):null};const Ds=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},xs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ts=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ds(e[t-1],r),l=l||Ds(e[t+1],o),l=l||xs(e[t-1],a),l=l||xs(e[t+1],i),l)return _i(s,l,"3-[neighbour]"),as(e,t,n),e[t].confidence=.2,!0}return null};const Cs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Os=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Cs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Cs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Bs=function(e,t,n){0===e[t].tags.size&&(_i(e[t],"Noun","3-[fallback]"),as(e,t,n),e[t].confidence=.1)};const zs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Vs=(e,t,n)=>0!==t||e[1]?null:n;var Fs={"Adj|Gerund":(e,t)=>zs(e,t),"Adj|Noun":(e,t)=>zs(e,t),"Adj|Past":(e,t)=>zs(e,t),"Adj|Present":(e,t)=>zs(e,t),"Noun|Gerund":(e,t)=>zs(e,t),"Noun|Verb":(e,t)=>zs(e,t)||Vs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>zs(e,t)||Vs(e,t,"PresentTense"),"Person|Noun":(e,t)=>zs(e,t),"Person|Verb":(e,t)=>0!==t&&zs(e,t)};const $s="undefined"!=typeof process&&process.env?process.env:self.env||{},Ss=/^(under|over|mis|re|un|dis|semi)-?/,Hs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&$s.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ls=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&$s.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Js={tagSwitch:Qi,checkSuffix:ds,checkRegex:ps,checkCase:cs,checkPrefix:fs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(_i(o,"Verb","3-[prefix]"),_i(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(_i(o,"Adjective","3-[prefix]"),_i(o,"Prefix","3-[prefix]")))},checkYear:ks},Ms={checkAcronym:Gs,neighbours:Ts,orgWords:Os,nounFallback:Bs,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Ss.test(l)&&!o[l]&&(l=l.replace(Ss,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Hs(e[t+1],n.afterWords);return o=o||Hs(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,r),o=o||Ls(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Fs[o]&&(u=Fs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):$s.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Ws=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Us={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Rs={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const sl=/'/;var ll=function(e,t){let n=e[t].normal.split(sl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var ul=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const cl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},hl={in:!0,by:!0,for:!0};var dl=(e,t)=>{let n=e[t];if(cl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!a.tags.has("Possessive")&&!(a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===hl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const gl=/'/,ml=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},pl={d:(e,t)=>ll(e,t),t:(e,t)=>ul(e,t),s:(e,t,n)=>dl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):il(e,t)},fl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var bl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===gl.test(a[o].normal)&&([,i]=a[o].normal.split(gl));let s=null;pl.hasOwnProperty(i)&&(s=pl[i](a,o,t)),s&&(s=fl(s,e),rl(n,[r,o],s),ml(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=al.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=nl},hooks:["contractionTwo"]};const vl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const yl=["i","we","they"];let wl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:vl+" #Person",tag:"Person",reason:"randy-smith"},{match:vl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${vl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:yl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:yl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:yl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let kl=null;var Pl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;kl=kl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(kl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:wl}},hooks:["postTagger"]};var Al=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter((e,t)=>n.some(e=>a[t].has(e)))};var El={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Al(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}};var jl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var Il=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?jl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this};var Nl={api:function(e){e.prototype.swap=Il}};m.plugin(Xs),m.plugin(bl),m.plugin(Pl),m.plugin(El),m.plugin(Nl);export{m as default}; diff --git a/changelog.md b/changelog.md index 6a5b68c30..d7e9372f1 100644 --- a/changelog.md +++ b/changelog.md @@ -16,6 +16,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[fix]** - support apostrophes in lexicon #932 - **[fix]** - support unTag property in sweep - **[change]** - keep sentence caches, when still valid +- **[change]** - alias nlp.compile() to .buildTrie() #### 14.3.1 [June 2021] - **[fix]** - missed caches in .sweep() diff --git a/issues.js b/issues.js index efdc0c56e..6cb684f39 100644 --- a/issues.js +++ b/issues.js @@ -5,50 +5,6 @@ nlp.plugin(plg) let txt = '' // tagging/root issues June 10 -// "Okay, okay, okay should I be scared?" -// "This is when I started to get scared." - -// "A 40-year-old man called me swell." -// "that's just not swell" - -txt = "Let’s get you into wardrobe for a fitting." -// txt = "I was an expert" -// txt = "definitely worth a rental." -// txt = "keeping the matter a secret" - -// txt = "My pants don't even fit right" -// txt = "In a baseball hat fit for a queen" -// txt = "Srinath will be fit in three weeks" -// txt = "does the different part fit together" - -// txt = "License fee for beach vendors hiked" -// txt = "TTC to hike fares by 10 cents in March" - -// txt = "He deserted from the Dragoons at" -// txt = "banks wear deserted look" - -// txt = "CBI catches DD acting director taking bribe" -// txt = "How do I keep kissing you, and catch my breath?" - -// txt = " throw stones, Dick, said Jaqueline." -// txt = "Loblaws reducing food prices at Toronto stores" -// txt = "Stock prices closed higher in Stockholm" - -// txt = `Upload documents required to verify your eligibility` - -txt = `It sure seemed that way.` -txt = `I am not sure when to take.` -txt = `Pretty sure my arm is broke` -txt = `Not sure about the details.` -txt = `Sure you don't wanna pretzel?` -txt = `You, you sure you need shoes?` -txt = `Sure enough, no one was there.` -txt = `Are you sure you wanna do this?` -txt = `make sure that it's truly lost.` -txt = `You sure this is what you want?` - - -txt = `she'll come around` txt = `` txt = `` txt = ` wade boggs was cool` @@ -144,10 +100,11 @@ let doc = nlp(txt).debug() // console.log(doc._cache) // doc.match('#Person').debug() -// let net = nlp.buildNet([ -// { match: 'every single #Noun' }, -// { match: 'not (a|one) #Singular' }, -// ]) +let net = nlp.buildNet([ + { match: 'every single #Noun' }, + { match: 'not (a|one) #Singular' }, +]) +console.log(net) // let doc = nlp('i saw every single house. i met none. ') // doc.match(net).debug() // let m = nlp([['first.', 'foo bar']]).debug() diff --git a/plugins/speed/tests/lazy.test.js b/plugins/speed/tests/lazy.test.js deleted file mode 100644 index df004341f..000000000 --- a/plugins/speed/tests/lazy.test.js +++ /dev/null @@ -1,30 +0,0 @@ -import test from 'tape' -import nlp from './_lib.js' -import plg from '../src/plugin.js' -import corpus from 'nlp-corpus' -const here = '[lazy] ' -nlp.plugin(plg) - - -test('lazy matches are correct', function (t) { - let txt = corpus.some(2000).join('\n') - let arr = [ - 'captain .', - '. of the #Noun', - '#Adverb #Adverb+', - '#Url #Noun .?', - 'certain !#Plural' - ] - arr.forEach(str => { - // let begin = new Date() - let reg = nlp(txt).match(str) - // console.log((new Date().getTime() - begin.getTime()) / 1000) - // begin = new Date() - let lazy = nlp.lazy(txt, str) - // console.log('->', (new Date().getTime() - begin.getTime()) / 1000) - - t.equal(reg.length, lazy.length, here + ' ' + str) - // t.deepEqual(reg.out('array'), lazy.out('array'), here + ' ' + str) - }) - t.end() -}) \ No newline at end of file diff --git a/plugins/wikipedia/src/plugin.js b/plugins/wikipedia/src/plugin.js index 7a0cba465..3e0c7bad8 100644 --- a/plugins/wikipedia/src/plugin.js +++ b/plugins/wikipedia/src/plugin.js @@ -7,7 +7,7 @@ let list = Object.keys(unpack(model)) // console.log(list.length.toLocaleString(), 'articles') // console.log('compiling lookup..') -let trie = nlp.compile(list) +let trie = nlp.buildTrie(list) const plugin = { api: function (View) { diff --git a/scratch.js b/scratch.js index 9bb49183e..2c4088c7d 100644 --- a/scratch.js +++ b/scratch.js @@ -1,7 +1,7 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/two.js' -// import plg from './plugins/speed/src/plugin.js' -// nlp.plugin(plg) +import nlp from './src/three.js' +import plg from './plugins/speed/src/plugin.js' +nlp.plugin(plg) // nlp.verbose('tagger') @@ -15,18 +15,55 @@ let doc // console.log(nlp.parseMatch('{sweet/adj}')) -doc = nlp.tokenize('one two three. four five six. seven eight nine.') -doc.compute('tagger') +doc = nlp.lazy('one two three. four five six. seven foo eight nine.', 'foo #Value') doc.debug() -// doc = nlp('one two three. four five').cache() -// let m = doc.remove('four') -// console.log(m._cache) -// nlp.lazy('the sweeter the sugar', '{sweet}').debug() -// console.log(doc.numbers().json()) +// "Okay, okay, okay should I be scared?" +// "This is when I started to get scared." +// "A 40-year-old man called me swell." +// "that's just not swell" + +txt = "Let’s get you into wardrobe for a fitting." +// txt = "I was an expert" +// txt = "definitely worth a rental." +// txt = "keeping the matter a secret" + +// txt = "My pants don't even fit right" +// txt = "In a baseball hat fit for a queen" +// txt = "Srinath will be fit in three weeks" +// txt = "does the different part fit together" + +// txt = "License fee for beach vendors hiked" +// txt = "TTC to hike fares by 10 cents in March" + +// txt = "He deserted from the Dragoons at" +// txt = "banks wear deserted look" + +// txt = "CBI catches DD acting director taking bribe" +// txt = "How do I keep kissing you, and catch my breath?" + +// txt = " throw stones, Dick, said Jaqueline." +// txt = "Loblaws reducing food prices at Toronto stores" +// txt = "Stock prices closed higher in Stockholm" + +// txt = `Upload documents required to verify your eligibility` + +txt = `It sure seemed that way.` +txt = `I am not sure when to take.` +txt = `Pretty sure my arm is broke` +txt = `Not sure about the details.` +txt = `Sure you don't wanna pretzel?` +txt = `You, you sure you need shoes?` +txt = `Sure enough, no one was there.` +txt = `Are you sure you wanna do this?` +txt = `make sure that it's truly lost.` +txt = `You sure this is what you want?` + + +txt = `she'll come around` diff --git a/scripts/perf/pool/lookup-worker.js b/scripts/perf/pool/lookup-worker.js index 897ecdf62..f4741b966 100644 --- a/scripts/perf/pool/lookup-worker.js +++ b/scripts/perf/pool/lookup-worker.js @@ -47,7 +47,7 @@ let matches = [ `West Toronto Nationals`, `Toronto Young Rangers`, ] -const trie = nlp.compile(matches) +const trie = nlp.buildTrie(matches) const doit = async function (txt) { let doc = nlp(txt) diff --git a/scripts/typescript/one.ts b/scripts/typescript/one.ts index 1326a88ae..2ca5f9e37 100644 --- a/scripts/typescript/one.ts +++ b/scripts/typescript/one.ts @@ -143,7 +143,7 @@ doc.cache() doc.uncache() // ### Lookup -nlp.compile(['']) +nlp.buildTrie(['']) doc.lookup({}) // ### Typeahead diff --git a/src/1-one/lookup/api/compile/compress.js b/src/1-one/lookup/api/buildTrie/compress.js similarity index 100% rename from src/1-one/lookup/api/compile/compress.js rename to src/1-one/lookup/api/buildTrie/compress.js diff --git a/src/1-one/lookup/api/compile/build.js b/src/1-one/lookup/api/buildTrie/index.js similarity index 100% rename from src/1-one/lookup/api/compile/build.js rename to src/1-one/lookup/api/buildTrie/index.js diff --git a/src/1-one/lookup/api/index.js b/src/1-one/lookup/api/index.js index 919e9083c..87655838c 100644 --- a/src/1-one/lookup/api/index.js +++ b/src/1-one/lookup/api/index.js @@ -1,4 +1,4 @@ -import build from './compile/build.js' +import build from './buildTrie/index.js' import scan from './scan.js' const isObject = val => { diff --git a/src/1-one/lookup/plugin.js b/src/1-one/lookup/plugin.js index d83bf53ab..ab30efe0f 100644 --- a/src/1-one/lookup/plugin.js +++ b/src/1-one/lookup/plugin.js @@ -1,15 +1,17 @@ import api from './api/index.js' -import compress from './api/compile/compress.js' -import build from './api/compile/build.js' +import compress from './api/buildTrie/compress.js' +import build from './api/buildTrie/index.js' /** pre-compile a list of matches to lookup */ const lib = { /** turn an array or object into a compressed trie*/ - compile: function (input) { + buildTrie: function (input) { const trie = build(input, this.world()) return compress(trie) } } +// add alias +lib.compile = lib.buildTrie export default { api, diff --git a/src/1-one/sweep/methods/buildNet/index.js b/src/1-one/sweep/methods/buildNet/index.js index 3eaef132d..f95419ef2 100644 --- a/src/1-one/sweep/methods/buildNet/index.js +++ b/src/1-one/sweep/methods/buildNet/index.js @@ -1,7 +1,7 @@ import parse from './01-parse.js' // do some indexing on the list of matches -const compile = function (matches, world) { +const buildNet = function (matches, world) { // turn match-syntax into json matches = parse(matches, world) @@ -39,4 +39,4 @@ const compile = function (matches, world) { } } -export default compile +export default buildNet diff --git a/src/2-two/lazy/lazyParse.js b/src/2-two/lazy/lazyParse.js new file mode 100644 index 000000000..c917a064b --- /dev/null +++ b/src/2-two/lazy/lazyParse.js @@ -0,0 +1,17 @@ +import maybeMatch from './maybeMatch.js' + +// tokenize first, then only tag sentences required +const lazyParse = function (input, reg) { + let net = reg + if (typeof reg === 'string') { + net = this.buildNet([{ match: reg }]) + } + let doc = this.tokenize(input) + let m = maybeMatch(doc, net) + if (m.found) { + m.compute(['index', 'tagger']) + return m.match(reg) + } + return doc.none() +} +export default lazyParse \ No newline at end of file diff --git a/src/2-two/lazy/maybeMatch.js b/src/2-two/lazy/maybeMatch.js new file mode 100644 index 000000000..803b5eefc --- /dev/null +++ b/src/2-two/lazy/maybeMatch.js @@ -0,0 +1,20 @@ +const getWords = function (net) { + return Object.keys(net.hooks).filter(w => !w.startsWith('#') && !w.startsWith('%')) +} + +const maybeMatch = function (doc, net) { + // must have *atleast* one of these words + let words = getWords(net) + if (words.length === 0) { + return doc + } + if (!doc._cache) { + doc.cache() + } + let cache = doc._cache + // return sentences that have one of our needed words + return doc.filter((_m, i) => { + return words.some(str => cache[i].has(str)) + }) +} +export default maybeMatch \ No newline at end of file diff --git a/src/2-two/lazy/plugin.js b/src/2-two/lazy/plugin.js new file mode 100644 index 000000000..4233f4340 --- /dev/null +++ b/src/2-two/lazy/plugin.js @@ -0,0 +1,7 @@ +import lazy from './lazyParse.js' + +export default { + lib: { + lazy + } +} \ No newline at end of file diff --git a/src/nlp.js b/src/nlp.js index 11914a31a..782f30a0f 100644 --- a/src/nlp.js +++ b/src/nlp.js @@ -38,7 +38,6 @@ nlp.tokenize = function (input, lex) { return doc } - /** extend compromise functionality */ nlp.plugin = function (plugin) { extend(plugin, this._world, View, this) diff --git a/src/two.js b/src/two.js index ff4d8cf41..60be7da8c 100644 --- a/src/two.js +++ b/src/two.js @@ -2,11 +2,13 @@ import nlp from './one.js' import preTag from './2-two/preTagger/plugin.js' import contractionTwo from './2-two/contraction-two/plugin.js' import postTag from './2-two/postTagger/plugin.js' +import lazy from './2-two/lazy/plugin.js' import swap from './2-two/swap/plugin.js' nlp.plugin(preTag) //~103kb nlp.plugin(contractionTwo) // nlp.plugin(postTag) //~33kb +nlp.plugin(lazy) // nlp.plugin(swap) // export default nlp diff --git a/tests/one/lookup/lookup-long.test.js b/tests/one/lookup/lookup-long.test.js index 4918456e2..821dfa50a 100644 --- a/tests/one/lookup/lookup-long.test.js +++ b/tests/one/lookup/lookup-long.test.js @@ -61,7 +61,7 @@ let arr = [ ] test('lookup-long', function (t) { - let trie = nlp.compile(arr) + let trie = nlp.buildTrie(arr) let doc = nlp(text) let res = doc.lookup(trie) t.equal(res.length, 11, here + 'found all') diff --git a/tests/one/lookup/lookup.test.js b/tests/one/lookup/lookup.test.js index c1c5bc193..27963987f 100644 --- a/tests/one/lookup/lookup.test.js +++ b/tests/one/lookup/lookup.test.js @@ -4,29 +4,29 @@ const here = '[one/lookup] ' test('lookup-basic', function (t) { let doc = nlp('one two three four five. no here results.') - let trie = nlp.compile(['one', 'onety']) + let trie = nlp.buildTrie(['one', 'onety']) let res = doc.lookup(trie).json() t.equal(res.length, 1, 'one results') t.equal(res[0].text, 'one', here + 'one result') - trie = nlp.compile(['two three', 'onety foo']) + trie = nlp.buildTrie(['two three', 'onety foo']) res = doc.lookup(trie).json() t.equal(res.length, 1, 'one results') t.equal(res[0].text, 'two three', here + 'two three result') - trie = nlp.compile(['two three', 'four five', 'five six']) + trie = nlp.buildTrie(['two three', 'four five', 'five six']) res = doc.lookup(trie).json() t.equal(res.length, 2, here + 'two results') - trie = nlp.compile(['two three four', 'four five six', 'five five', 'five']) + trie = nlp.buildTrie(['two three four', 'four five six', 'five five', 'five']) res = doc.lookup(trie).json() t.equal(res.length, 2, here + 'two three-results') - trie = nlp.compile(['two three', 'two', 'seven', 'one', 'onety', 'eleventy eight']) + trie = nlp.buildTrie(['two three', 'two', 'seven', 'one', 'onety', 'eleventy eight']) res = doc.lookup(trie) t.equal(res.length, 2, here + 'no-dupe results') - trie = nlp.compile(['twoe three', 'twsasdf so', 'sefven', 'onde', 'onety', 'eleventy eight']) + trie = nlp.buildTrie(['twoe three', 'twsasdf so', 'sefven', 'onde', 'onety', 'eleventy eight']) res = doc.lookup(trie) t.equal(res.length, 0, here + 'no results') @@ -55,14 +55,14 @@ test('lookup-tricky', function (t) { }) test('lookup-dupes', function (t) { - let trie = nlp.compile([`Toronto`, `Toronto Rangers`]) + let trie = nlp.buildTrie([`Toronto`, `Toronto Rangers`]) let res = nlp('toronto rangers').lookup(trie) t.equal(res.length, 1, here + 'no-sub-matches') t.end() }) test('lookup-repeat', function (t) { - let trie = nlp.compile([ + let trie = nlp.buildTrie([ `Toronto`, `Toronto Toronto`, `Toronto Rangers`, @@ -81,22 +81,22 @@ test('lookup-repeat', function (t) { test('lookup-fallback', function (t) { - let trie = nlp.compile(['a b c d e f', 'a b']) + let trie = nlp.buildTrie(['a b c d e f', 'a b']) let doc = nlp('one two a b three') let res = doc.lookup(trie) t.equal(res.text(), 'a b', here + 'fallback-pass') - trie = nlp.compile(['a a a', 'a a b']) + trie = nlp.buildTrie(['a a a', 'a a b']) doc = nlp('one two three. a a b') res = doc.lookup(trie) t.equal(res.text(), 'a a b', here + 'fallback-double-pass') - trie = nlp.compile(['a a a', 'a a b']) + trie = nlp.buildTrie(['a a a', 'a a b']) doc = nlp('one two three. a a c') res = doc.lookup(trie) t.equal(res.text(), '', here + 'fallback-double-fail') - trie = nlp.compile(['a b c d e f', 'a b c']) + trie = nlp.buildTrie(['a b c d e f', 'a b c']) doc = nlp('one two three. a b') res = doc.lookup(trie) t.equal(res.text(), '', here + 'fallback-fail') @@ -134,7 +134,7 @@ test('lookup-reserved', function (t) { "Bridgewater State University", "Bridie", ] - let trie = nlp.compile(arr) + let trie = nlp.buildTrie(arr) let res = nlp('before Bridge Constructor Portal after').lookup(trie) t.equal(res.found, true, 'found-reserved-word') t.end() @@ -148,7 +148,7 @@ test('lookup no-contractions', function (t) { 'afghanistan', 'foo', ] - let trie = nlp.compile(arr) + let trie = nlp.buildTrie(arr) let res = nlp(`so we're adding 3201 Marines to our forces in Afghanistan.`).lookup(trie) t.equal(res.has('marines'), true, 'no-contraction got first one') t.equal(res.has('afghanistan'), true, 'no-contraction got first one') @@ -194,17 +194,17 @@ test('lookup backtrack', function (t) { // test('obj-scan', function(t) { // let doc = nlp('one one two three four five. here one result.') -// let trie = nlp.compile({ two: 'Fun', here: 'Fun' }) +// let trie = nlp.buildTrie({ two: 'Fun', here: 'Fun' }) // let res = doc.lookup(trie) // t.equal(res['Fun'].length, 2, 'two single results') // doc = nlp('one one two three four five. here one result.') -// trie = nlp.compile({ one: 'One', 'not here': 'Missing' }) +// trie = nlp.buildTrie({ one: 'One', 'not here': 'Missing' }) // res = doc.lookup(trie) // t.equal(res['One'].length, 3, 'three one results') // t.equal(res['Missing'], undefined, 'no missing results') -// trie = nlp.compile({}) +// trie = nlp.buildTrie({}) // res = doc.lookup(trie) // t.equal(Object.keys(res).length, 0, 'no results') diff --git a/tests/two/contractions/match-contraction.test.js b/tests/two/contractions/match-contraction.test.js index 717f269c6..5c456da7c 100644 --- a/tests/two/contractions/match-contraction.test.js +++ b/tests/two/contractions/match-contraction.test.js @@ -100,7 +100,7 @@ test('lookup contraction', function (t) { 'afghanistan', 'foo', ] - let trie = nlp.compile(arr) + let trie = nlp.buildTrie(arr) let res = nlp(`so we're adding 3201 Marines to our forces in Afghanistan.`).lookup(trie) t.equal(res.has('marines'), true, 'post-contraction found first one') t.equal(res.has('afghanistan'), true, 'post-contraction found second one') diff --git a/tests/two/misc/lazy.test.js b/tests/two/misc/lazy.test.js new file mode 100644 index 000000000..6dfb558a8 --- /dev/null +++ b/tests/two/misc/lazy.test.js @@ -0,0 +1,22 @@ +import test from 'tape' +import nlp from '../_lib.js' +const here = '[two/lazy] ' +import penn from '../tagger/_pennSample.js' +let txt = penn.map(a => a.text).join('\n') + +test('lazy matches are equal', function (t) { + let arr = [ + 'captain .', + '. of the #Noun', + '#Adverb #Adverb+', + '#Url #Noun .?', + 'certain !#Plural' + ] + arr.forEach(str => { + let reg = nlp(txt).match(str) + let lazy = nlp.lazy(txt, str) + t.equal(reg.length, lazy.length, here + ' ' + str) + t.deepEqual(reg.out('array'), lazy.out('array'), here + ' ' + str) + }) + t.end() +}) \ No newline at end of file diff --git a/tests/two/number-match.test.js b/tests/two/tagger/number-match.test.js similarity index 99% rename from tests/two/number-match.test.js rename to tests/two/tagger/number-match.test.js index fd2c2699b..182a7a246 100644 --- a/tests/two/number-match.test.js +++ b/tests/two/tagger/number-match.test.js @@ -1,5 +1,5 @@ import test from 'tape' -import nlp from './_lib.js' +import nlp from '../_lib.js' const here = '[two/number-match] ' let arr = [ diff --git a/types/misc.ts b/types/misc.ts index 222d8664c..24e4d3ad7 100644 --- a/types/misc.ts +++ b/types/misc.ts @@ -75,4 +75,18 @@ export interface Plugin { export interface matchOptions { fuzzy?: number, caseSensitive?: boolean, +} + +export interface Match { + match: string, + tag?: string | string[], + unTag?: string | string[], + group?: string | number, + reason?: string, +} + +export interface Net { + hooks: object, + always?: any, + isNet: boolean } \ No newline at end of file diff --git a/types/one.d.ts b/types/one.d.ts index 8646750b7..d3ab381ca 100644 --- a/types/one.d.ts +++ b/types/one.d.ts @@ -1,4 +1,4 @@ -import { Lexicon, Plugin, matchOptions } from './misc' +import { Lexicon, Plugin, matchOptions, Match, Net } from './misc' import View from './view/one' /** parse a given text */ @@ -31,7 +31,9 @@ declare module nlp { /** add new words to internal lexicon */ export function addWords(words: Lexicon): any /** turn a list of words into a searchable graph */ - export function compile(words: string[]): object + export function buildTrie(words: string[]): object + /** compile a set of match objects to a more optimized form */ + export function buildNet(matches: Match[]): Net /** add words to the autoFill dictionary */ export function typeahead(words: Lexicon): any /** export internal methods for plugins */ diff --git a/types/three.d.ts b/types/three.d.ts index cac54f807..ee338fcf6 100644 --- a/types/three.d.ts +++ b/types/three.d.ts @@ -1,4 +1,4 @@ -import { Lexicon, Plugin, matchOptions } from './misc' +import { Lexicon, Plugin, matchOptions, Match, Net } from './misc' import View from './view/three' /** parse a given text */ @@ -29,7 +29,9 @@ declare module nlp { /** add new words to internal lexicon */ export function addWords(words: Lexicon): any /** turn a list of words into a searchable graph */ - export function compile(words: string[]): object + export function buildTrie(words: string[]): object + /** compile a set of match objects to a more optimized form */ + export function buildNet(matches: Match[]): Net /** add words to the autoFill dictionary */ export function typeahead(words: Lexicon): any /** export library for extending with plugins */ diff --git a/types/two.d.ts b/types/two.d.ts index 9efa25a55..d3397f71c 100644 --- a/types/two.d.ts +++ b/types/two.d.ts @@ -1,4 +1,4 @@ -import { Lexicon, Plugin, matchOptions } from './misc' +import { Lexicon, Plugin, matchOptions, Match, Net } from './misc' import View from './view/two' /** parse a given text */ @@ -8,6 +8,8 @@ declare function nlp(text: string, lexicon?: Lexicon): View declare module nlp { /** interpret text without tagging */ export function tokenize(text: string, lexicon?: Lexicon): View + /** scan through text with minimal analysis */ + export function lazy(text: string, match?: string): View /** mix in a compromise-plugin */ export function plugin(plugin: Plugin): any /** turn a match-string into json */ @@ -29,7 +31,9 @@ declare module nlp { /** add new words to internal lexicon */ export function addWords(words: Lexicon): any /** turn a list of words into a searchable graph */ - export function compile(words: string[]): object + export function buildTrie(words: string[]): object + /** compile a set of match objects to a more optimized form */ + export function buildNet(matches: Match[]): Net /** add words to the autoFill dictionary */ export function typeahead(words: Lexicon): any /** export internal methods for plugins */ diff --git a/types/view/one.ts b/types/view/one.ts index 934375c6b..62888dc70 100644 --- a/types/view/one.ts +++ b/types/view/one.ts @@ -1,4 +1,4 @@ -import { Document, Pointer, Groups, JsonProps, outMethods, matchOptions, Term } from '../misc' +import { Document, Pointer, Groups, JsonProps, outMethods, matchOptions, Term, Net } from '../misc' class View { // Utils @@ -81,15 +81,15 @@ class View { // Match /** return matching patterns in this doc */ - match: (match: string | View, group?: string | number, options?: matchOptions) => View + match: (match: string | View | Net, group?: string | number, options?: matchOptions) => View /** return only the first match */ - matchOne: (match: string | View, group?: string | number, options?: matchOptions) => View + matchOne: (match: string | View | Net, group?: string | number, options?: matchOptions) => View /** Return a boolean if this match exists */ - has: (match: string | View, group?: string | number, options?: matchOptions) => boolean + has: (match: string | View | Net, group?: string | number, options?: matchOptions) => boolean /** return each current phrase, only if it contains this match */ - if: (match: string | View, group?: string | number, options?: matchOptions) => View + if: (match: string | View | Net, group?: string | number, options?: matchOptions) => View /** Filter-out any current phrases that have this match */ - ifNo: (match: string | View, group?: string | number, options?: matchOptions) => View + ifNo: (match: string | View | Net, group?: string | number, options?: matchOptions) => View /** return the terms before each match */ before: (match: string | View, group?: string | number, options?: matchOptions) => View @@ -101,6 +101,8 @@ class View { growRight: (match: string | View, group?: string | number, options?: matchOptions) => View /** expand the view with any left-or-right matches*/ grow: (match: string | View, group?: string | number, options?: matchOptions) => View + /** apply a sequence of match objects to the document */ + sweep: (match: Net, opts?: object) => View /** .split() [alias] */ splitOn: (match?: string, group?: string | number) => View From 224b927c87b25fedae38d559068fc42571b24b1b Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 14:19:41 -0400 Subject: [PATCH 13/27] remove apostrophe from addwords --- changelog.md | 3 ++- scratch.js | 20 ++++++++++---------- src/1-one/lexicon/methods/expand.js | 2 +- src/2-two/preTagger/methods/expand/index.js | 1 + tests/two/plugin/addWords.test.js | 13 +++++++++++++ 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/changelog.md b/changelog.md index d7e9372f1..2d8cc0f78 100644 --- a/changelog.md +++ b/changelog.md @@ -11,8 +11,9 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v --> #### 14.4.0 [June 2021] -- **[change]** - root matches like '{walk}' work without doing .compute('root') +- **[change]** - support root matches like '{walk}' work without doing .compute('root') - **[change]** - split numbers+units '12km' as contraction - #919 +- **[new]** - `.lazy(txt, match)` fast-scan method [1](https://observablehq.com/@spencermountain/compromise-performance) - **[fix]** - support apostrophes in lexicon #932 - **[fix]** - support unTag property in sweep - **[change]** - keep sentence caches, when still valid diff --git a/scratch.js b/scratch.js index 2c4088c7d..e009e4208 100644 --- a/scratch.js +++ b/scratch.js @@ -1,7 +1,7 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/three.js' -import plg from './plugins/speed/src/plugin.js' -nlp.plugin(plg) +import nlp from './src/two.js' +// import plg from './plugins/speed/src/plugin.js' +// nlp.plugin(plg) // nlp.verbose('tagger') @@ -15,8 +15,8 @@ let doc // console.log(nlp.parseMatch('{sweet/adj}')) -doc = nlp.lazy('one two three. four five six. seven foo eight nine.', 'foo #Value') -doc.debug() +// doc = nlp.lazy('one two three. four five six. seven foo eight nine.', 'foo #Value') +// doc.debug() @@ -68,9 +68,9 @@ txt = `she'll come around` // apostrophe -// let lex = { -// 'queen anne\'s lace': 'Flower' -// } -// let doc = nlp(`Queen Anne's lace`, lex) -// doc.match(`#Flower`).debug() +let lex = { + 'queen anne\'s lace': 'Flower' +} +doc = nlp(`queen anne's lace`, lex).debug() +doc.match(`#Flower`).debug() // console.log(doc.docs[0]) \ No newline at end of file diff --git a/src/1-one/lexicon/methods/expand.js b/src/1-one/lexicon/methods/expand.js index 4ce480ed6..02400dcaa 100644 --- a/src/1-one/lexicon/methods/expand.js +++ b/src/1-one/lexicon/methods/expand.js @@ -4,12 +4,12 @@ const expand = function (words) { let lex = {} // console.log('start:', Object.keys(lex).length) let _multi = {} - // go through each word in this key-value obj: Object.keys(words).forEach(word => { let tag = words[word] // normalize lexicon a little bit word = word.toLowerCase().trim() + word = word.replace(/'s\b/, '') // cache multi-word terms let split = word.split(/ /) if (split.length > 1) { diff --git a/src/2-two/preTagger/methods/expand/index.js b/src/2-two/preTagger/methods/expand/index.js index eb20a7abc..7194788e8 100644 --- a/src/2-two/preTagger/methods/expand/index.js +++ b/src/2-two/preTagger/methods/expand/index.js @@ -12,6 +12,7 @@ const expand = function (words, world) { let tag = words[word] // normalize lexicon a little bit word = word.toLowerCase().trim() + word = word.replace(/'s\b/, '') // cache multi-word terms let split = word.split(/ /) if (split.length > 1) { diff --git a/tests/two/plugin/addWords.test.js b/tests/two/plugin/addWords.test.js index 4877396b9..ae2372cc4 100644 --- a/tests/two/plugin/addWords.test.js +++ b/tests/two/plugin/addWords.test.js @@ -23,3 +23,16 @@ test('persistent-lexicon-change', function (t) { t.end() }) + +test('apostrophe lexicon:', function (t) { + let lex = { + 'queen anne\'s lace': 'Flower', + 'applebee\'s': 'Restaurant' + } + let doc = nlp(`i went to applebee's for dinner`, lex) + t.equal(doc.has(`#Restaurant`), true, here + 'lexicon w/ apostrophe') + + doc = nlp(`Queen Anne's lace`, lex) + t.equal(doc.has(`#Flower`), true, here + 'multi lexicon w/ apostrophe') + t.end() +}) \ No newline at end of file From e342996ca93a59849ff2c567e9b6254ffa322280 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 14:32:21 -0400 Subject: [PATCH 14/27] a tad verb --- scratch.js | 10 ++-------- src/1-one/change/compute/uuid.js | 6 +++--- src/2-two/postTagger/model/adjective/adj-verb.js | 11 +++++------ 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/scratch.js b/scratch.js index e009e4208..9e27e5e20 100644 --- a/scratch.js +++ b/scratch.js @@ -64,13 +64,7 @@ txt = `You sure this is what you want?` txt = `she'll come around` +txt = ` felt a bit confused` - -// apostrophe -let lex = { - 'queen anne\'s lace': 'Flower' -} -doc = nlp(`queen anne's lace`, lex).debug() -doc.match(`#Flower`).debug() -// console.log(doc.docs[0]) \ No newline at end of file +nlp(txt).debug() \ No newline at end of file diff --git a/src/1-one/change/compute/uuid.js b/src/1-one/change/compute/uuid.js index dea6c5353..72eee6da4 100644 --- a/src/1-one/change/compute/uuid.js +++ b/src/1-one/change/compute/uuid.js @@ -42,11 +42,11 @@ const toId = function (term) { now = parseInt(now, 10) //don't overflow time - now = now > 46655 ? 46655 : now + now = now > 46655 ? 0 : now //don't overflow sentences - n = n > 46655 ? 46655 : n + n = n > 46655 ? 0 : n // //don't overflow terms - i = i > 1294 ? 1294 : i + i = i > 1294 ? 0 : i // 3 digits for time let id = pad3(now.toString(36)) diff --git a/src/2-two/postTagger/model/adjective/adj-verb.js b/src/2-two/postTagger/model/adjective/adj-verb.js index 05283036b..6330470b9 100644 --- a/src/2-two/postTagger/model/adjective/adj-verb.js +++ b/src/2-two/postTagger/model/adjective/adj-verb.js @@ -26,10 +26,9 @@ export default [ // got tired of { match: 'got #Adverb? [#PastTense] of', group: 0, tag: 'Adjective', reason: 'got-tired-of' }, //felt loved - { - match: '(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]', - group: 0, - tag: 'Adjective', - reason: 'felt-loved', - }, + { match: '(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]', group: 0, tag: 'Adjective', reason: 'felt-loved' }, + // seem confused + { match: '(seem|feel|seemed|felt) [#PastTense]', group: 0, tag: 'Adjective', reason: 'seem-confused' }, + // a bit confused + { match: 'a (bit|little|tad) [#PastTense]', group: 0, tag: 'Adjective', reason: 'a-bit-confused' }, ] From 156f9850b6e21a56795c305716ebaa8b96be21b4 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 17:41:05 -0400 Subject: [PATCH 15/27] fix id overflow issue in tests --- scratch.js | 9 +++------ src/1-one/change/compute/uuid.js | 12 +++++------- .../contraction-one/compute/contractions/index.js | 4 ---- src/1-one/lexicon/compute/index.js | 4 ++-- tests/two/match.test.js | 6 +++++- 5 files changed, 15 insertions(+), 20 deletions(-) diff --git a/scratch.js b/scratch.js index 9e27e5e20..01de06bda 100644 --- a/scratch.js +++ b/scratch.js @@ -1,5 +1,5 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/two.js' +import nlp from './src/three.js' // import plg from './plugins/speed/src/plugin.js' // nlp.plugin(plg) @@ -62,9 +62,6 @@ txt = `Are you sure you wanna do this?` txt = `make sure that it's truly lost.` txt = `You sure this is what you want?` +txt = 'i see 5. and some more' +doc = nlp(txt) -txt = `she'll come around` -txt = ` felt a bit confused` - - -nlp(txt).debug() \ No newline at end of file diff --git a/src/1-one/change/compute/uuid.js b/src/1-one/change/compute/uuid.js index 72eee6da4..0f4487c8a 100644 --- a/src/1-one/change/compute/uuid.js +++ b/src/1-one/change/compute/uuid.js @@ -28,7 +28,7 @@ collisions are more-likely after after 46-thousand sentences */ -let start = 0 +let index = 0 const pad3 = (str) => { str = str.length < 3 ? '0' + str : str @@ -37,19 +37,17 @@ const pad3 = (str) => { const toId = function (term) { let [n, i] = term.index || [0, 0] - start += 1 - var now = start; - now = parseInt(now, 10) + index += 1 - //don't overflow time - now = now > 46655 ? 0 : now + //don't overflow index + index = index > 46655 ? 0 : index //don't overflow sentences n = n > 46655 ? 0 : n // //don't overflow terms i = i > 1294 ? 0 : i // 3 digits for time - let id = pad3(now.toString(36)) + let id = pad3(index.toString(36)) // 3 digit for sentence index (46k) id += pad3(n.toString(36)) diff --git a/src/1-one/contraction-one/compute/contractions/index.js b/src/1-one/contraction-one/compute/contractions/index.js index 31f81b68a..3f704233c 100644 --- a/src/1-one/contraction-one/compute/contractions/index.js +++ b/src/1-one/contraction-one/compute/contractions/index.js @@ -21,10 +21,6 @@ const reTag = function (terms, view, start, len) { end += 1 } tmp.ptrs = [[0, start, end]] - tmp.compute('lexicon') - if (tmp.world.compute.preTagger) { - tmp.compute('preTagger') - } } const byEnd = { diff --git a/src/1-one/lexicon/compute/index.js b/src/1-one/lexicon/compute/index.js index e3f2d76b6..3de8ff0d7 100644 --- a/src/1-one/lexicon/compute/index.js +++ b/src/1-one/lexicon/compute/index.js @@ -3,7 +3,7 @@ import singleWord from './single-word.js' // tag any words in our lexicon - even if it hasn't been filled-up yet // rest of pre-tagger is in ./two/preTagger -const firstPass = function (view) { +const lexicon = function (view) { const world = view.world view.docs.forEach(terms => { for (let i = 0; i < terms.length; i += 1) { @@ -18,5 +18,5 @@ const firstPass = function (view) { } export default { - lexicon: firstPass + lexicon } \ No newline at end of file diff --git a/tests/two/match.test.js b/tests/two/match.test.js index 7c6753612..f40a73ac0 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -621,7 +621,7 @@ let arr = [ ['with its 1950 beds', 'with #Possessive !#Year #Plural'], ['His death in 1994 went barely noticed', '#Possessive #Noun in #Year #Verb #Adverb noticed'], ['the films in 1972 and 1974 respectively', 'the #Plural in #Year and #Year .'], - ['seen over 2000 Studio-Era sound films', '#Verb over !#Year #Noun+'], + ['seen over 2000 studio-era sound films', '#Verb over !#Year #Noun+'], ['This 1925 film narrates the story', '#Determiner #Year #Noun #PresentTense the #Singular'], // ['my 1950 convertable', '#Possessive #Year #Singular'], @@ -649,6 +649,9 @@ let arr = [ ["wizard of oz", '#Noun of !#Unit'], ["downtown pa", '#Noun !#Unit'], + ["felt confused", '#PastTense #Adjective'], + ["felt a bit confused", '#PastTense a #Noun #Adjective'], + [`she'll come around`, '#Pronoun will #PhrasalVerb #Particle'] // ["I was an expert", 'i was an #Noun'], // ["definitely worth a rental.", '#Adverb #Verb a #Noun'], // ["keeping the matter a secret", '#Gerund the #Noun a #Noun'], @@ -658,6 +661,7 @@ test('match:', function (t) { arr.forEach(function (a) { let [str, match] = a let doc = nlp(str).compute('tagRank') + // doc.tagger().tagger() let tags = doc.json()[0].terms.map(term => term.tagRank[0]) let msg = `'${(str + "' ").padEnd(20, ' ')} - '${tags.join(', ')}'` let m = doc.match(match) From a0dcbbd1c6bd3066159c451a8dc97fda19f5d548 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 18:04:36 -0400 Subject: [PATCH 16/27] refactor sentence parser --- scratch.js | 7 ++- .../{01-basic.js => 01-simple-split.js} | 0 .../methods/01-sentences/02-simple-merge.js | 28 ++++++++++ .../methods/01-sentences/03-smart-merge.js | 20 +++++++ .../tokenize/methods/01-sentences/index.js | 52 ++++--------------- .../{02-isSentence.js => is-sentence.js} | 0 src/1-one/tokenize/methods/index.js | 34 +++--------- src/1-one/tokenize/methods/parse.js | 23 ++++++++ 8 files changed, 92 insertions(+), 72 deletions(-) rename src/1-one/tokenize/methods/01-sentences/{01-basic.js => 01-simple-split.js} (100%) create mode 100644 src/1-one/tokenize/methods/01-sentences/02-simple-merge.js create mode 100644 src/1-one/tokenize/methods/01-sentences/03-smart-merge.js rename src/1-one/tokenize/methods/01-sentences/{02-isSentence.js => is-sentence.js} (100%) create mode 100644 src/1-one/tokenize/methods/parse.js diff --git a/scratch.js b/scratch.js index 01de06bda..6b7057ed5 100644 --- a/scratch.js +++ b/scratch.js @@ -62,6 +62,9 @@ txt = `Are you sure you wanna do this?` txt = `make sure that it's truly lost.` txt = `You sure this is what you want?` -txt = 'i see 5. and some more' -doc = nlp(txt) +txt = 'i see 55. and some more' +let m = nlp.model() +console.log(Object.keys(m.one)) +// m.one.abbreviations['5'] = true +doc = nlp(txt).debug() diff --git a/src/1-one/tokenize/methods/01-sentences/01-basic.js b/src/1-one/tokenize/methods/01-sentences/01-simple-split.js similarity index 100% rename from src/1-one/tokenize/methods/01-sentences/01-basic.js rename to src/1-one/tokenize/methods/01-sentences/01-simple-split.js diff --git a/src/1-one/tokenize/methods/01-sentences/02-simple-merge.js b/src/1-one/tokenize/methods/01-sentences/02-simple-merge.js new file mode 100644 index 000000000..80bbe0000 --- /dev/null +++ b/src/1-one/tokenize/methods/01-sentences/02-simple-merge.js @@ -0,0 +1,28 @@ +const hasLetter = /[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i +const hasSomething = /\S/ + +const notEmpty = function (splits) { + let chunks = [] + for (let i = 0; i < splits.length; i++) { + let s = splits[i] + if (s === undefined || s === '') { + continue + } + //this is meaningful whitespace + if (hasSomething.test(s) === false || hasLetter.test(s) === false) { + //add it to the last one + if (chunks[chunks.length - 1]) { + chunks[chunks.length - 1] += s + continue + } else if (splits[i + 1]) { + //add it to the next one + splits[i + 1] = s + splits[i + 1] + continue + } + } + //else, only whitespace, no terms, no sentence + chunks.push(s) + } + return chunks +} +export default notEmpty \ No newline at end of file diff --git a/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js b/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js new file mode 100644 index 000000000..0aad33c00 --- /dev/null +++ b/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js @@ -0,0 +1,20 @@ +import isSentence from './is-sentence.js' + +//loop through these chunks, and join the non-sentence chunks back together.. +const smartMerge = function (chunks, world) { + let abbrevs = world.model.one.abbreviations || new Set() + let sentences = [] + for (let i = 0; i < chunks.length; i++) { + let c = chunks[i] + //should this chunk be combined with the next one? + if (chunks[i + 1] && isSentence(c, abbrevs) === false) { + chunks[i + 1] = c + (chunks[i + 1] || '') + } else if (c && c.length > 0) { + //this chunk is a proper sentence.. + sentences.push(c) + chunks[i] = '' + } + } + return sentences +} +export default smartMerge \ No newline at end of file diff --git a/src/1-one/tokenize/methods/01-sentences/index.js b/src/1-one/tokenize/methods/01-sentences/index.js index 58c91a893..09a569259 100644 --- a/src/1-one/tokenize/methods/01-sentences/index.js +++ b/src/1-one/tokenize/methods/01-sentences/index.js @@ -1,61 +1,27 @@ -import basicSplit from './01-basic.js' -import isSentence from './02-isSentence.js' +import simpleSplit from './01-simple-split.js' +import simpleMerge from './02-simple-merge.js' +import smartMerge from './03-smart-merge.js' //(Rule-based sentence boundary segmentation) - chop given text into its proper sentences. // Ignore periods/questions/exclamations used in acronyms/abbreviations/numbers, etc. //regs- const hasSomething = /\S/ const startWhitespace = /^\s+/ -const hasLetter = /[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i -const splitSentences = function (text, model) { - let abbrevs = model.one.abbreviations || new Set() +const splitSentences = function (text, world) { text = text || '' text = String(text) - let sentences = [] - // First do a greedy-split.. - let chunks = [] // Ensure it 'smells like' a sentence if (!text || typeof text !== 'string' || hasSomething.test(text) === false) { - return sentences + return [] } // cleanup unicode-spaces text = text.replace('\xa0', ' ') - // Start somewhere: - let splits = basicSplit(text) + // First do a greedy-split.. + let splits = simpleSplit(text) // Filter-out the crap ones - for (let i = 0; i < splits.length; i++) { - let s = splits[i] - if (s === undefined || s === '') { - continue - } - //this is meaningful whitespace - if (hasSomething.test(s) === false || hasLetter.test(s) === false) { - //add it to the last one - if (chunks[chunks.length - 1]) { - chunks[chunks.length - 1] += s - continue - } else if (splits[i + 1]) { - //add it to the next one - splits[i + 1] = s + splits[i + 1] - continue - } - } - //else, only whitespace, no terms, no sentence - chunks.push(s) - } + let chunks = simpleMerge(splits) //detection of non-sentence chunks: - //loop through these chunks, and join the non-sentence chunks back together.. - for (let i = 0; i < chunks.length; i++) { - let c = chunks[i] - //should this chunk be combined with the next one? - if (chunks[i + 1] && isSentence(c, abbrevs, hasLetter) === false) { - chunks[i + 1] = c + (chunks[i + 1] || '') - } else if (c && c.length > 0) { - //this chunk is a proper sentence.. - sentences.push(c) - chunks[i] = '' - } - } + let sentences = smartMerge(chunks, world) //if we never got a sentence, return the given text if (sentences.length === 0) { return [text] diff --git a/src/1-one/tokenize/methods/01-sentences/02-isSentence.js b/src/1-one/tokenize/methods/01-sentences/is-sentence.js similarity index 100% rename from src/1-one/tokenize/methods/01-sentences/02-isSentence.js rename to src/1-one/tokenize/methods/01-sentences/is-sentence.js diff --git a/src/1-one/tokenize/methods/index.js b/src/1-one/tokenize/methods/index.js index 2e5404728..30b6166ee 100644 --- a/src/1-one/tokenize/methods/index.js +++ b/src/1-one/tokenize/methods/index.js @@ -1,37 +1,17 @@ -import sentence from './01-sentences/index.js' -import term from './02-terms/index.js' -import whitespace from './03-whitespace/index.js' -import normalize from '../compute/normal/index.js' +import splitSentences from './01-sentences/index.js' +import splitTerms from './02-terms/index.js' +import splitWhitespace from './03-whitespace/index.js' import killUnicode from './unicode.js' +import fromString from './parse.js' -// turn a string input into a 'document' json format -const fromString = function (input, world) { - const { methods, model } = world - const { splitSentences, splitTerms, splitWhitespace } = methods.one.tokenize - input = input || '' - // split into sentences - let sentences = splitSentences(input, model) - // split into word objects - input = sentences.map((txt) => { - let terms = splitTerms(txt, model) - // split into [pre-text-post] - terms = terms.map(splitWhitespace) - // add normalized term format, always - terms.forEach((t) => { - normalize(t, world) - }) - return terms - }) - return input -} export default { one: { killUnicode, tokenize: { - splitSentences: sentence, - splitTerms: term, - splitWhitespace: whitespace, + splitSentences, + splitTerms, + splitWhitespace, fromString, }, }, diff --git a/src/1-one/tokenize/methods/parse.js b/src/1-one/tokenize/methods/parse.js new file mode 100644 index 000000000..ef2b01868 --- /dev/null +++ b/src/1-one/tokenize/methods/parse.js @@ -0,0 +1,23 @@ +import normalize from '../compute/normal/index.js' + +// turn a string input into a 'document' json format +const parse = function (input, world) { + const { methods, model } = world + const { splitSentences, splitTerms, splitWhitespace } = methods.one.tokenize + input = input || '' + // split into sentences + let sentences = splitSentences(input, world) + // split into word objects + input = sentences.map((txt) => { + let terms = splitTerms(txt, model) + // split into [pre-text-post] + terms = terms.map(splitWhitespace) + // add normalized term format, always + terms.forEach((t) => { + normalize(t, world) + }) + return terms + }) + return input +} +export default parse \ No newline at end of file From 455b96c425b92412254ef4e3d2eb0c1fb33ac9ab Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 18:24:31 -0400 Subject: [PATCH 17/27] run filltag after switches --- scratch.js | 35 +++++++++---------- .../methods/01-sentences/03-smart-merge.js | 5 +-- src/1-one/tokenize/methods/index.js | 3 +- .../compute/tagger/3rd-pass/06-switches.js | 4 +++ .../compute/tagger/3rd-pass/_adhoc.js | 10 +++++- src/2-two/preTagger/compute/tagger/index.js | 6 ++-- 6 files changed, 38 insertions(+), 25 deletions(-) diff --git a/scratch.js b/scratch.js index 6b7057ed5..9cb76b21e 100644 --- a/scratch.js +++ b/scratch.js @@ -27,8 +27,9 @@ let doc // "that's just not swell" txt = "Let’s get you into wardrobe for a fitting." -// txt = "I was an expert" -// txt = "definitely worth a rental." +txt = "I was an expert" +txt = "definitely worth a rental." +txt = "the genious" // txt = "keeping the matter a secret" // txt = "My pants don't even fit right" @@ -51,20 +52,18 @@ txt = "Let’s get you into wardrobe for a fitting." // txt = `Upload documents required to verify your eligibility` -txt = `It sure seemed that way.` -txt = `I am not sure when to take.` -txt = `Pretty sure my arm is broke` -txt = `Not sure about the details.` -txt = `Sure you don't wanna pretzel?` -txt = `You, you sure you need shoes?` -txt = `Sure enough, no one was there.` -txt = `Are you sure you wanna do this?` -txt = `make sure that it's truly lost.` -txt = `You sure this is what you want?` - -txt = 'i see 55. and some more' -let m = nlp.model() -console.log(Object.keys(m.one)) -// m.one.abbreviations['5'] = true -doc = nlp(txt).debug() +// txt = `It sure seemed that way.` +// txt = `I am not sure when to take.` +// txt = `Pretty sure my arm is broke` +// txt = `Not sure about the details.` +// txt = `Sure you don't wanna pretzel?` +// txt = `You, you sure you need shoes?` +// txt = `Sure enough, no one was there.` +// txt = `Are you sure you wanna do this?` +// txt = `make sure that it's truly lost.` +// txt = `You sure this is what you want?` + +doc = nlp(txt) +doc.nouns().toPlural() +doc.debug() diff --git a/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js b/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js index 0aad33c00..2bb8fdf93 100644 --- a/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js +++ b/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js @@ -1,8 +1,9 @@ -import isSentence from './is-sentence.js' //loop through these chunks, and join the non-sentence chunks back together.. const smartMerge = function (chunks, world) { - let abbrevs = world.model.one.abbreviations || new Set() + const isSentence = world.methods.one.tokenize.isSentence + const abbrevs = world.model.one.abbreviations || new Set() + let sentences = [] for (let i = 0; i < chunks.length; i++) { let c = chunks[i] diff --git a/src/1-one/tokenize/methods/index.js b/src/1-one/tokenize/methods/index.js index 30b6166ee..acff60154 100644 --- a/src/1-one/tokenize/methods/index.js +++ b/src/1-one/tokenize/methods/index.js @@ -3,13 +3,14 @@ import splitTerms from './02-terms/index.js' import splitWhitespace from './03-whitespace/index.js' import killUnicode from './unicode.js' import fromString from './parse.js' - +import isSentence from './01-sentences/is-sentence.js' export default { one: { killUnicode, tokenize: { splitSentences, + isSentence, splitTerms, splitWhitespace, fromString, diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js b/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js index 9431c1e86..c14c0e0a5 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js @@ -1,3 +1,4 @@ +import fillTags from './_fillTags.js' const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env // eslint-disable-line import adhoc from './_adhoc.js' const prefix = /^(under|over|mis|re|un|dis|semi)-?/ @@ -73,7 +74,10 @@ const doSwitches = function (terms, i, world) { } // did we find anything? if (tag) { + // tag it setTag([term], tag, world, null, `3-[variable] (${form})`) + // add plural/singular etc. + fillTags(terms, i, model) } else if (env.DEBUG_TAGS) { console.log(`\n -> X - '${str}' : (${form}) `)//eslint-disable-line } diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js b/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js index b6d2c6f1f..ffb712b1e 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js @@ -12,12 +12,20 @@ const isAloneVerb = (terms, i, tag) => { return null } +// 'a rental' +const isEndNoun = function (terms, i) { + if (!terms[i + 1] && terms[i - 1] && terms[i - 1].tags.has('Determiner')) { + return 'Noun' + } + return null +} + const adhoc = { 'Adj|Gerund': (terms, i) => { return isCapital(terms, i) }, 'Adj|Noun': (terms, i) => { - return isCapital(terms, i) + return isCapital(terms, i) || isEndNoun(terms, i) }, 'Adj|Past': (terms, i) => { return isCapital(terms, i) diff --git a/src/2-two/preTagger/compute/tagger/index.js b/src/2-two/preTagger/compute/tagger/index.js index 2661c8385..c8cd66223 100644 --- a/src/2-two/preTagger/compute/tagger/index.js +++ b/src/2-two/preTagger/compute/tagger/index.js @@ -11,7 +11,7 @@ import checkAcronym from './3rd-pass/01-acronym.js' import neighbours from './3rd-pass/02-neighbours.js' import orgWords from './3rd-pass/03-orgWords.js' import nounFallback from './3rd-pass/04-fallback.js' -import variables from './3rd-pass/06-switches.js' +import switches from './3rd-pass/06-switches.js' import checkHyphen from './3rd-pass/05-prefixes.js' const second = { @@ -29,7 +29,7 @@ const third = { neighbours, orgWords, nounFallback, - variables, + switches, } // @@ -68,7 +68,7 @@ const thirdPass = function (terms, model, world) { // support 'out-lived' second.checkHyphen(terms, i, model) // verb-noun disambiguation, etc - third.variables(terms, i, world) + third.switches(terms, i, world) } } From cbaf83a434b555d5bd59a8f19a6bdee8be9cd431 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 18:46:32 -0400 Subject: [PATCH 18/27] tagging fixes --- data/lexicon/nouns/singulars.js | 1 + data/lexicon/numbers/units.js | 1 + data/lexicon/switches/adj-noun.js | 1 + data/lexicon/switches/noun-gerund.js | 1 - data/lexicon/switches/noun-verb.js | 2 + issues.js | 36 +++++++++++++++ scratch.js | 45 +------------------ src/1-one/tag/methods/setTag.js | 2 +- .../compute/tagger/3rd-pass/06-switches.js | 2 +- src/2-two/preTagger/model/clues/_adj.js | 2 + src/2-two/preTagger/model/lexicon/_data.js | 10 ++--- tests/two/match.test.js | 9 ++-- tests/two/tagger/_pennSample.js | 4 -- 13 files changed, 56 insertions(+), 60 deletions(-) diff --git a/data/lexicon/nouns/singulars.js b/data/lexicon/nouns/singulars.js index 4f35e5c5e..c3d3d8d39 100644 --- a/data/lexicon/nouns/singulars.js +++ b/data/lexicon/nouns/singulars.js @@ -400,6 +400,7 @@ export default [ 'tv', 'stone', + 'man', 'tributary', ] diff --git a/data/lexicon/numbers/units.js b/data/lexicon/numbers/units.js index e41c55c9c..59766eae5 100644 --- a/data/lexicon/numbers/units.js +++ b/data/lexicon/numbers/units.js @@ -138,5 +138,6 @@ export default [ 'attosecond', 'attoseconds', 'percent', + 'year old', 'years old', ] diff --git a/data/lexicon/switches/adj-noun.js b/data/lexicon/switches/adj-noun.js index 3588cc7f8..2160d92e7 100644 --- a/data/lexicon/switches/adj-noun.js +++ b/data/lexicon/switches/adj-noun.js @@ -93,6 +93,7 @@ export default [ 'subject', 'subordinate', 'superior', + 'swell', 'taboo', 'tan', 'teen', diff --git a/data/lexicon/switches/noun-gerund.js b/data/lexicon/switches/noun-gerund.js index 5fac907f2..3f4f5a9bf 100644 --- a/data/lexicon/switches/noun-gerund.js +++ b/data/lexicon/switches/noun-gerund.js @@ -58,7 +58,6 @@ export default [ 'debating', 'directing', 'doubting', - 'downloading', 'drawing', 'dressing', 'drinking', diff --git a/data/lexicon/switches/noun-verb.js b/data/lexicon/switches/noun-verb.js index 00fb02df8..f423d9568 100644 --- a/data/lexicon/switches/noun-verb.js +++ b/data/lexicon/switches/noun-verb.js @@ -168,6 +168,7 @@ export default [ 'dispute', 'divorce', 'document', + 'download', 'dodge', 'doubt', 'draft', @@ -635,6 +636,7 @@ export default [ 'twist', 'type', 'upgrade', + 'upload', 'usher', 'vacuum', 'value', diff --git a/issues.js b/issues.js index 6cb684f39..c8502bf9f 100644 --- a/issues.js +++ b/issues.js @@ -23,6 +23,8 @@ let doc = nlp(txt).debug() // banks wear // %Plural|Verb% %Noun|Verb% +// upload documents +// %Noun|Verb% %Plural|Verb% // let doc = nlp(`he will have been walking`).debug() // let doc = nlp(`Bob has handled`).debug() @@ -122,6 +124,40 @@ console.log(net) +// txt = "should I be scared?" +// txt = "i started to get scared." + + +// txt = "My pants don't even fit right" +// txt = "In a baseball hat fit for a queen" +// txt = "does the different part fit together" + +// txt = "License fee for beach vendors hiked" +// txt = "TTC to hike fares by 10 cents in March" + +// txt = "He deserted from the Dragoons at" +// txt = "banks wear deserted look" + +// txt = "CBI catches DD acting director taking bribe" +// txt = "How do I keep kissing you, and catch my breath?" + +// txt = " throw stones, Dick, said Jaqueline." +// txt = "Loblaws reducing food price at Toronto stores" +// txt = "Stock prices closed higher in Stockholm" + +// txt = `Upload documents` + +// txt = `It sure seemed that way.` +// txt = `I am not sure when to take.` +// txt = `Pretty sure my arm is broke` +// txt = `Not sure about the details.` +// txt = `Sure you don't wanna pretzel?` +// txt = `You, you sure you need shoes?` +// txt = `Sure enough, no one was there.` +// txt = `Are you sure you wanna do this?` +// txt = `make sure that it's truly lost.` +// txt = `You sure this is what you want?` + // res.found[0].view.debug() // doc = nlp(`first. second. third`) diff --git a/scratch.js b/scratch.js index 9cb76b21e..84931675f 100644 --- a/scratch.js +++ b/scratch.js @@ -3,7 +3,7 @@ import nlp from './src/three.js' // import plg from './plugins/speed/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +nlp.verbose('tagger') let txt = '' let doc @@ -20,50 +20,7 @@ let doc -// "Okay, okay, okay should I be scared?" -// "This is when I started to get scared." - -// "A 40-year-old man called me swell." -// "that's just not swell" - -txt = "Let’s get you into wardrobe for a fitting." -txt = "I was an expert" -txt = "definitely worth a rental." -txt = "the genious" -// txt = "keeping the matter a secret" - -// txt = "My pants don't even fit right" -// txt = "In a baseball hat fit for a queen" -// txt = "Srinath will be fit in three weeks" -// txt = "does the different part fit together" - -// txt = "License fee for beach vendors hiked" -// txt = "TTC to hike fares by 10 cents in March" - -// txt = "He deserted from the Dragoons at" -// txt = "banks wear deserted look" - -// txt = "CBI catches DD acting director taking bribe" -// txt = "How do I keep kissing you, and catch my breath?" - -// txt = " throw stones, Dick, said Jaqueline." -// txt = "Loblaws reducing food prices at Toronto stores" -// txt = "Stock prices closed higher in Stockholm" - -// txt = `Upload documents required to verify your eligibility` - -// txt = `It sure seemed that way.` -// txt = `I am not sure when to take.` -// txt = `Pretty sure my arm is broke` -// txt = `Not sure about the details.` -// txt = `Sure you don't wanna pretzel?` -// txt = `You, you sure you need shoes?` -// txt = `Sure enough, no one was there.` -// txt = `Are you sure you wanna do this?` -// txt = `make sure that it's truly lost.` -// txt = `You sure this is what you want?` doc = nlp(txt) -doc.nouns().toPlural() doc.debug() diff --git a/src/1-one/tag/methods/setTag.js b/src/1-one/tag/methods/setTag.js index f8fe9eb77..0d578f44b 100644 --- a/src/1-one/tag/methods/setTag.js +++ b/src/1-one/tag/methods/setTag.js @@ -41,7 +41,7 @@ const tagTerm = function (term, tag, tagSet, isSafe) { } // finally, add our tag term.tags.add(tag) - // now it's dirty + // now it's dirty? term.dirty = true // add a chunk too, if it's easy addChunk(term, tag) diff --git a/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js b/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js index c14c0e0a5..fc7c1677c 100644 --- a/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js +++ b/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js @@ -27,7 +27,7 @@ const checkTag = (term, obj = {}, tagSet) => { }) let found = tags.find(tag => obj[tag]) if (found && env.DEBUG_TAGS) { - console.log(` \x1b[2m\x1b[3m ↓ - '${term.normal}' (#${found}) \x1b[0m`)//eslint-disable-line + console.log(` \x1b[2m\x1b[3m ↓ - '${term.normal || term.implicit}' (#${found}) \x1b[0m`)//eslint-disable-line } found = obj[found] return found diff --git a/src/2-two/preTagger/model/clues/_adj.js b/src/2-two/preTagger/model/clues/_adj.js index eebbb2b99..b327259b8 100644 --- a/src/2-two/preTagger/model/clues/_adj.js +++ b/src/2-two/preTagger/model/clues/_adj.js @@ -48,6 +48,8 @@ export default { nothing: jj, //nothing secret, something: jj,//something wrong anything: jj, + not: jj,//not swell + me: jj,//called me swell }, afterWords: { too: jj, //insulting too diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 53297b84a..aa61fd51a 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -19,18 +19,18 @@ export default { "Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", "Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba", "Possessive": "true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne", - "Noun|Verb": "true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", + "Noun|Verb": "true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss", "Actor": "true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", "Honorific": "true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", - "Singular": "true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al", + "Singular": "true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al", "Preposition": "true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", "Person|Noun": "true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", - "Noun|Gerund": "true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng", - "Unit": "true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", - "Adj|Noun": "true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic", + "Noun|Gerund": "true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng", + "Unit": "true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", + "Adj|Noun": "true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic", "ProperNoun": "true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi", "Ordinal": "true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th", "Cardinal": "true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions", diff --git a/tests/two/match.test.js b/tests/two/match.test.js index f40a73ac0..8204215d3 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -651,10 +651,11 @@ let arr = [ ["felt confused", '#PastTense #Adjective'], ["felt a bit confused", '#PastTense a #Noun #Adjective'], - [`she'll come around`, '#Pronoun will #PhrasalVerb #Particle'] - // ["I was an expert", 'i was an #Noun'], - // ["definitely worth a rental.", '#Adverb #Verb a #Noun'], - // ["keeping the matter a secret", '#Gerund the #Noun a #Noun'], + [`she'll come around`, '#Pronoun will #PhrasalVerb #Particle'], + ['that\'s not swell', 'that is not #Adjective'], + ["I was an expert", 'i was an #Noun'], + ["definitely worth a rental.", '#Adverb #Verb a #Noun'], + ["keeping the matter a secret", '#Gerund the #Noun a #Noun'], ] test('match:', function (t) { let res = [] diff --git a/tests/two/tagger/_pennSample.js b/tests/two/tagger/_pennSample.js index 93cd3d9b8..5f4f65d8b 100644 --- a/tests/two/tagger/_pennSample.js +++ b/tests/two/tagger/_pennSample.js @@ -3281,10 +3281,6 @@ export default [ text: 'Upon the same day he conquered Darius, won a great victory at sea, & died the same day.', tags: 'IN, DT, JJ, NN, PRP, VBD, NNP, VBD, DT, JJ, NN, IN, NN, CC, VBD, DT, JJ, NN', }, - { - text: 'The 69 year old Dr. Lopez was found guilty and was summarily hung and quartered on June 7, 1594 at Tyburn.', - tags: 'DT, CD, NN, JJ, NNP, NNP, VBD, VBN, JJ, CC, VBD, RB, VBN, CC, VBN, IN, NNP, CD, CD, IN, NNP', - }, { text: '1533 Atahualpa, inca emperor of peru, imprisoned & learns chess.', tags: 'CD, NNP, NNP, NN, IN, NNP, VBN, CC, VBZ, NN', From ee38b35c531d176120c8e91b81ceda0b66773615 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 18:49:36 -0400 Subject: [PATCH 19/27] keep speed plugin readme --- changelog.md | 1 + plugins/speed/README.md | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/changelog.md b/changelog.md index 2d8cc0f78..f711a02e8 100644 --- a/changelog.md +++ b/changelog.md @@ -18,6 +18,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[fix]** - support unTag property in sweep - **[change]** - keep sentence caches, when still valid - **[change]** - alias nlp.compile() to .buildTrie() +- **[fix]** - tagging fixes #### 14.3.1 [June 2021] - **[fix]** - missed caches in .sweep() diff --git a/plugins/speed/README.md b/plugins/speed/README.md index 651225b47..0b4772345 100644 --- a/plugins/speed/README.md +++ b/plugins/speed/README.md @@ -21,15 +21,13 @@ -to install: -```js -import plg from 'compromise-speed' -nlp.extend(plug) -``` ### WorkerPool parse sentences of a large text in parallel: ```js +import {workerPool} from 'compromise-speed' +nlp.extend(workerPool) + let doc = await nlp.workerPool(myNovel, 'the #Adjective of #Noun') doc.debug()//results ``` @@ -51,6 +49,9 @@ doc.debug()//results ### StreamFile parse and process a file from your filesystem, without loading it all into memory: ```js +import {streamFile} from 'compromise-speed' +nlp.extend(streamFile) + nlp.streamFile('./path/to/file.txt', (s)=>{ // map fn on each sentence return s.if('the #Adjective of times') @@ -67,6 +68,9 @@ This plugin will cache any already-parsed sentences, and combine them in-memory, it will also un-cache any temporary sentences, to clear-up memory. ```js +import {keyPress} from 'compromise-speed' +nlp.extend(keyPress) + let doc = nlp.keyPress('parsed once. it was the blurst of') doc = nlp.keyPress('parsed once. it was the blurst of times') ``` @@ -84,8 +88,4 @@ or in the browser: ``` - - MIT \ No newline at end of file From 2c6e8a28234fbe269270b1693f5ce10d84684a85 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 21:02:27 -0400 Subject: [PATCH 20/27] types fixes --- scripts/test/types.ts | 23 +++++++++++++++++------ types/one.d.ts | 2 ++ types/three.d.ts | 2 ++ types/view/one.ts | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/scripts/test/types.ts b/scripts/test/types.ts index f43c7039e..6aebe8052 100644 --- a/scripts/test/types.ts +++ b/scripts/test/types.ts @@ -19,7 +19,7 @@ tape('misc functions', function (t) { let m = doc.filter(s => s.found) let b = doc.map(s => s) doc.forEach((s) => s) - m = doc.find(s => s.found) + let o = doc.find(s => s.found) m = doc.some(s => s.found) m = doc.random() m = doc.all() @@ -87,7 +87,7 @@ tape('misc functions', function (t) { // match m = doc.matchOne('#Foo') m = doc.match('#Foo') - m = doc.has('#Foo') + let bool = doc.has('#Foo') m = doc.if('#Foo') m = doc.ifNo('#Foo') m = doc.before('#Foo') @@ -134,6 +134,17 @@ tape('misc functions', function (t) { doc.compute('typeahead') doc.autoFill() + // sweep + let matches = [ + { match: '2nd quarter of? 2022', tag: 'TimePeriod' }, + { match: '(from|by|before) now', tag: 'FooBar' }, + ] + let net = nlp.buildNet(matches) + doc = nlp(`so good by now. woo hoo before now. in the 2nd quarter 2022`) + let sr = doc.sweep(net) + + // lazy + doc = nlp.lazy('hello', 'foo') // Two doc.compute('contractionTwo') @@ -195,9 +206,9 @@ tape('misc functions', function (t) { s = doc.questions() // verbs - arr = doc.verbs().parse() + // arr = doc.verbs().parse() arr = doc.verbs().json() - arr = doc.verbs().subjects() + let sj = doc.verbs().subjects() let vb = doc.verbs().isSingular() vb = doc.verbs().isPlural() vb = doc.verbs().isImperative() @@ -235,7 +246,7 @@ tape('plugin-date', function (t) { let doc = nlp('foo bar baz') let a = doc.dates() let b = doc.times() - b = doc.durations() + let c = doc.durations() let m = doc.dates().match('foo') m = doc.dates().format('foo') @@ -275,7 +286,7 @@ tape('plugin-stats', function (t) { tape('plugin-wikipedia', function (t) { let doc = nlp('foo bar baz. foo') - doc = doc.wikipedia() + let wp = doc.wikipedia() t.end() }) diff --git a/types/one.d.ts b/types/one.d.ts index d3ab381ca..7759c1b26 100644 --- a/types/one.d.ts +++ b/types/one.d.ts @@ -8,6 +8,8 @@ declare function nlp(text: string, lexicon?: Lexicon): View declare module nlp { /** interpret text without tagging */ export function tokenize(text: string, lexicon?: Lexicon): View + /** scan through text with minimal analysis */ + export function lazy(text: string, match?: string): View /** mix-in a compromise plugin */ export function plugin(plugin: Plugin): any /** mix-in a compromise plugin */ diff --git a/types/three.d.ts b/types/three.d.ts index ee338fcf6..b586d9fcb 100644 --- a/types/three.d.ts +++ b/types/three.d.ts @@ -8,6 +8,8 @@ declare function nlp(text: string, lexicon?: Lexicon): View & declare module nlp { /** interpret text without tagging */ export function tokenize(text: string, lexicon?: Lexicon): View + /** scan through text with minimal analysis */ + export function lazy(text: string, match?: string): View /** mix in a compromise-plugin */ export function plugin(plugin: Plugin): any /** turn a match-string into json */ diff --git a/types/view/one.ts b/types/view/one.ts index 62888dc70..7b4d88f21 100644 --- a/types/view/one.ts +++ b/types/view/one.ts @@ -102,7 +102,7 @@ class View { /** expand the view with any left-or-right matches*/ grow: (match: string | View, group?: string | number, options?: matchOptions) => View /** apply a sequence of match objects to the document */ - sweep: (match: Net, opts?: object) => View + sweep: (match: Net, opts?: object) => { view: View, found: object[] } /** .split() [alias] */ splitOn: (match?: string, group?: string | number) => View From 15b6b5e4d934f9e53160c1ee2e83532b0ccd69f8 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 21:03:15 -0400 Subject: [PATCH 21/27] 14.4.0 --- builds/compromise.js | 4 +-- builds/one/compromise-one.cjs | 4 +-- builds/one/compromise-one.mjs | 4 +-- builds/three/compromise-three.cjs | 4 +-- builds/three/compromise-three.mjs | 4 +-- builds/two/compromise-two.cjs | 4 +-- builds/two/compromise-two.mjs | 4 +-- changelog.md | 3 +- package-lock.json | 46 +++++++++++++++---------------- package.json | 8 +++--- scratch.js | 7 ----- src/_version.js | 2 +- 12 files changed, 44 insertions(+), 50 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index e88969535..3cae6d243 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1;var r=k;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),P(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const pe=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===pe.test(r[s].normal)&&([l,u]=r[s].normal.split(pe));let c=ve(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](r,s)),c?(c=ye(c,e),Q(n,[i,s],c),ge(n[i],e,s,c.length)):me.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},xe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ee=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ne=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ee(e,this.world));var r;let a=Te(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ee(e,this.world());return De(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Oe(n,t),Object.keys(r).forEach(e=>{r[e]=Oe(r[e],t)}),{ptrs:n,byGroup:r}},Be=e=>"[object Object]"===Object.prototype.toString.call(e),ze=e=>e&&Be(e)&&!0===e.isView,$e=e=>e&&Be(e)&&!0===e.isNet,Fe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Fe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(ze(e))return e.fullPointer.length>0;if($e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(ze(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(ze(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Fe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},He={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},Le=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},We=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Je={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Je.split=Je.splitAfter;var qe=Je;const Ke=Object.assign({},Se,He,qe);Ke.lookBehind=Ke.before,Ke.lookBefore=Ke.before,Ke.lookAhead=Ke.after,Ke.lookAfter=Ke.after,Ke.notIf=Ke.ifNo;var Ue=function(e){Object.assign(e.prototype,Ke)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ze=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{Ze(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Ye(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ze(e)?r.push(e):r=r.concat(e.split(_e))}),r=Ye(r),r};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),at=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===at(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===at(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===at(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===at(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===at(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===at(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===at(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===at(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let r=n.choices.length-1;n.choices[r]=st(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===at(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===at(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===at(e))return e=lt(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===at(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=rt(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&ht.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},mt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Xe(e);return r=r.map(e=>ct(e,t)),r=dt(r,n),r=pt(r,n),r=mt(r),r};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),xt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>kt.test(e.post)||kt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;var Et=xt;let Nt=function(){};Nt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Et[t.method]&&!0===Et[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,r)):t.choices.some(t=>Nt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=Nt;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Gt(e,e.t).length=r-e.t),e.t=r,!0)};const Ct=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Gt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Bt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},$t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||$t(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Gt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Tt(e,a)){if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Bt(a))return null;if(!0!==e.optional)return null}else if(!St(a))return null}else if(!St(a))return null}else if(!St(a))return null}else if(!Vt(a))return null}else if(!Ot(a))return null}else if(!Dt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Ue,methods:{one:{termMethods:Et,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Yt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Xt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let rn=[],an=0;for(;an<64;)rn[an]=0|4294967296*Math.sin(++an%Math.PI);function on(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(an=i=0;an>4]+rn[i]+~~o[an|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},sn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&cn[o]&&(a[o]=cn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn,pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const mn="";var gn={green:e=>""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(gn.blue("\n ──────")),t.forEach(e=>{console.log(gn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=gn.blue(" │ ")+gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return gn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${gn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const yn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},En=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Nn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},In={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:En,splitAll:Nn}}},Tn=function(e,t){let n=e.concat(t),r=En(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>xn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Dn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>xn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Vn={union:function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Vn.and=Vn.union,Vn.intersection=function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.not=function(e){e=Cn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.difference=Vn.not,Vn.complement=function(){let e=this.all(),t=Gn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Tn(e,[t])}),e=On(e,this.document),this.update(e)};var Bn={methods:In,api:function(e){Object.assign(e.prototype,Vn)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var $n=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Fn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Sn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Hn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=$n(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Fn(a,t.hooks);return o=Sn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Hn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Wn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},qn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Wn.test(t))!function(e,t,n,r){let a=t.split(Wn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),qn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,r))};var Un=Kn,Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),er=e=>(e=e||"").trim(),tr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||_n.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Zn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Qn),t);var t},nr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Yn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},rr=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ar={text:nr,txt:nr,array:rr,flat:rr},or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(nr(e,!0)),null):ar.hasOwnProperty(t)?ar[t](e):e},ir=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=er(e),!sr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(er(e),t)),this;e=er(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=er(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ir(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ir(this.json),or(this.json,e)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(e){let t=tr(e);return new g$1(t)};lr.prototype.plugin=function(e){e(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(e){if(ur.hasOwnProperty(e.id))return ur[e.id];if(ur.hasOwnProperty(e.is))return ur[e.is];let t=e._cache.parents.find(e=>ur[e]);return ur[t]};var hr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:cr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const dr=function(e){return e?"string"==typeof e?[e]:e:[]};var pr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=dr(e[t].children),e[t].not=dr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},mr={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=pr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return lr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return hr(n)}}};const gr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),gr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return gr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},br=function(e){Object.assign(e.prototype,fr)},vr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const yr=new Set(["Auxiliary","Possessive"]);var wr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(yr.has(e)||!t.hasOwnProperty(n))return 1;if(yr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:mr,api:br,lib:vr};const Pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Ar=function(e){let t=[],n=e.split(kr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Mr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Lr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Kr=/^'[0-9]{2}/;var Ur=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Mr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!qr.test(e)?"'"===n&&Kr.test(e)?(n="",t):"":(n="",t)))).replace(Lr,a=>(r=a,Wr.test(a)&&/[sn]['’]$/.test(t)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Rr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Qr=/([A-Z]\.)+[A-Z]?,?$/,_r=/^[A-Z]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(e){return function(e){return!0===Qr.test(e)||!0===Yr.test(e)||!0===_r.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ea=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Rr(r),r=n(r,t),r=Xr(r),e.normal=r},ta={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Dr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Sr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=zr(n),n=Vr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ur(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ea(e,t)}),n})}}}},na={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ra={},aa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ra[t]=!0,aa[t]="Abbreviation",void 0!==e[1]&&(aa[t]=[aa[t],e[1]])})});var oa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ia={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},sa={};Object.keys(ia).forEach((function(e){ia[e].split("").forEach((function(t){sa[t]=e}))}));const la=/\//,ua=/[a-z]\.[a-z]/i,ca=/[0-9]/;var ha=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),la.test(n)&&!ua.test(n)&&!ca.test(n)){let t=n.split(la);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const da=/^\p{Letter}+-\p{Letter}+$/u;var pa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),da.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ma=function(e){let t=0,n=0,r=e.document;for(let e=0;ega(e,ha),machine:e=>ga(e,pa),normal:e=>ga(e,ea),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ya={safe:!0,min:3};var wa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ba},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ya,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(jn),m.extend(Jt),m.extend(Bn),m.extend(wr),m.plugin(we),m.extend(fa),m.plugin(f),m.extend(Ce),m.extend(wa),m.extend(xe),m.extend(Ln);var Pa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ka={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Aa=36,ja="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xa=ja.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==xa[e])return xa[e];let t=0,n=1,r=Aa,a=1;for(;n=0;n--,a*=Aa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Na=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ta(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Va.test(e)?Object.keys(t).forEach(t=>{if(za[t]=e,"Noun|Verb"===e){let e=Oa(t,$a);za[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ba[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ba[e]="Emoticon"),delete Ba[""],delete Ba.null,delete Ba[" "];const Fa="Adjective";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa},afterTags:{Adjective:Fa},beforeWords:{seem:Fa,seemed:Fa,seems:Fa,feel:Fa,feels:Fa,felt:Fa,appear:Fa,appears:Fa,appeared:Fa,also:Fa,over:Fa,under:Fa,too:Fa,it:Fa,but:Fa,still:Fa,really:Fa,quite:Fa,well:Fa,very:Fa,deeply:Fa,profoundly:Fa,extremely:Fa,so:Fa,badly:Fa,mostly:Fa,totally:Fa,awfully:Fa,rather:Fa,nothing:Fa,something:Fa,anything:Fa},afterWords:{too:Fa,also:Fa,or:Fa}};const Ha="Gerund";var Ma={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha}},La={beforeTags:Object.assign({},Sa.beforeTags,Ma.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Sa.afterTags,Ma.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Sa.beforeWords,Ma.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Sa.afterWords,Ma.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wa="Singular";var Ja={beforeTags:{Determiner:Wa,Possessive:Wa,Acronym:Wa,Noun:Wa,Adjective:Wa,PresentTense:Wa,Gerund:Wa,PastTense:Wa,Infinitive:Wa,Date:Wa},afterTags:{Value:Wa,Modal:Wa,Copula:Wa,PresentTense:Wa,PastTense:Wa,Demonym:Wa},beforeWords:{the:Wa,with:Wa,without:Wa,of:Wa,for:Wa,any:Wa,all:Wa,on:Wa,cut:Wa,cuts:Wa,save:Wa,saved:Wa,saves:Wa,make:Wa,makes:Wa,made:Wa,minus:Wa,plus:Wa,than:Wa,another:Wa,versus:Wa,neither:Wa,favorite:Wa,best:Wa,daily:Wa,weekly:Wa,linear:Wa,binary:Wa,mobile:Wa,lexical:Wa,technical:Wa,computer:Wa,scientific:Wa,formal:Wa},afterWords:{of:Wa,system:Wa,aid:Wa,method:Wa,utility:Wa,tool:Wa,reform:Wa,therapy:Wa,philosophy:Wa,room:Wa,authority:Wa,says:Wa,said:Wa,wants:Wa,wanted:Wa}};const qa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ka={beforeTags:Object.assign({},Sa.beforeTags,Ja.beforeTags,qa.beforeTags),afterTags:Object.assign({},Sa.afterTags,Ja.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Ja.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Ja.afterWords)};const Ua={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ra={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Qa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},_a={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Za={beforeTags:Object.assign({},Sa.beforeTags,Ua),afterTags:Object.assign({},Sa.afterTags,Ra),beforeWords:Object.assign({},Sa.beforeWords,Qa),afterWords:Object.assign({},Sa.afterWords,_a)};const Ya="Infinitive";var Xa={beforeTags:{Modal:Ya,Adverb:Ya,Negative:Ya,Plural:Ya},afterTags:{Determiner:Ya,Adverb:Ya,Possessive:Ya,Preposition:Ya},beforeWords:{i:Ya,we:Ya,you:Ya,they:Ya,to:Ya,please:Ya,will:Ya,have:Ya,had:Ya,would:Ya,could:Ya,should:Ya,do:Ya,did:Ya,does:Ya,can:Ya,must:Ya,us:Ya,me:Ya,he:Ya,she:Ya,it:Ya,being:Ya},afterWords:{the:Ya,me:Ya,you:Ya,him:Ya,her:Ya,them:Ya,it:Ya,a:Ya,an:Ya,up:Ya,down:Ya,by:Ya,out:Ya,off:Ya,under:Ya,when:Ya,all:Ya,to:Ya,because:Ya,although:Ya,before:Ya,how:Ya,otherwise:Ya,together:Ya,though:Ya,yet:Ya}};const eo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var to={beforeTags:Object.assign({},Sa.beforeTags,Xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Sa.afterTags,Xa.afterTags,eo.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Xa.afterWords,{to:void 0})};const no={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ro={},ao={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var io={beforeTags:Object.assign({},Ma.beforeTags,Ja.beforeTags,no),afterTags:Object.assign({},Ma.afterTags,Ja.afterTags,ro),beforeWords:Object.assign({},Ma.beforeWords,Ja.beforeWords,ao),afterWords:Object.assign({},Ma.afterWords,Ja.afterWords,oo)},so={beforeTags:Object.assign({},Xa.beforeTags,Ja.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xa.afterTags,Ja.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xa.beforeWords,Ja.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xa.afterWords,Ja.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const lo="Person";var uo={beforeTags:{Honorific:lo,Person:lo,Preposition:lo},afterTags:{Person:lo,ProperNoun:lo,Verb:lo},ownTags:{ProperNoun:lo},beforeWords:{hi:lo,hey:lo,yo:lo,dear:lo,hello:lo},afterWords:{said:lo,says:lo,told:lo,tells:lo,feels:lo,felt:lo,seems:lo,thinks:lo,thought:lo,spends:lo,spendt:lo,plays:lo,played:lo,sing:lo,sang:lo,learn:lo,learned:lo,wants:lo,wanted:lo}};const co="Month",ho={beforeTags:{Date:co,Value:co},afterTags:{Date:co,Value:co},beforeWords:{by:co,in:co,on:co,during:co,after:co,before:co,between:co,until:co,til:co,sometime:co,of:co,this:co,next:co,last:co,previous:co,following:co},afterWords:{sometime:co,in:co,of:co,until:co,the:co}};var po={beforeTags:Object.assign({},uo.beforeTags,ho.beforeTags),afterTags:Object.assign({},uo.afterTags,ho.afterTags),beforeWords:Object.assign({},uo.beforeWords,ho.beforeWords),afterWords:Object.assign({},uo.afterWords,ho.afterWords)};const mo={Place:"Place"},go={Place:"Place",Abbreviation:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vo="Unit";const yo={"Adj|Gerund":La,"Adj|Noun":Ka,"Adj|Past":Za,"Adj|Present":to,"Noun|Verb":so,"Noun|Gerund":io,"Person|Noun":{beforeTags:Object.assign({},Ja.beforeTags,uo.beforeTags),afterTags:Object.assign({},Ja.afterTags,uo.afterTags),beforeWords:Object.assign({},Ja.beforeWords,uo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ja.afterWords,uo.afterWords)},"Person|Date":po,"Person|Verb":{beforeTags:Object.assign({},uo.beforeTags,Xa.beforeTags),afterTags:Object.assign({},uo.afterTags,Xa.afterTags),beforeWords:Object.assign({},uo.beforeWords,Xa.beforeWords),afterWords:Object.assign({},uo.afterWords,Xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},mo,uo.beforeTags),afterTags:Object.assign({},go,uo.afterTags),beforeWords:Object.assign({},fo,uo.beforeWords),afterWords:Object.assign({},bo,uo.afterWords)},"Unit|Noun":{beforeTags:{Value:vo},afterTags:{},beforeWords:{per:vo,every:vo,each:vo,square:vo,cubic:vo,sq:vo,metric:vo},afterWords:{per:vo,squared:vo,cubed:vo,long:vo}}},wo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};yo["Plural|Verb"]={beforeWords:wo(yo["Noun|Verb"].beforeWords,{}),afterWords:wo(yo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wo(yo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wo(yo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Po=yo;const ko="Adjective",Ao="Infinitive",jo="PresentTense",xo="Singular",Eo="PastTense",No="Adverb",Io="Plural",To="Actor",Go="Verb",Do="Noun",Co="LastName",Oo="Modal",Vo="Participle";var Bo=[null,null,{ea:xo,ia:Do,ic:ko,ly:No,"'n":Go,"'t":Go},{oed:Eo,ued:Eo,xed:Eo," so":No,"'ll":Oo,"'re":"Copula",azy:ko,eer:Do,end:Go,ped:Eo,ffy:ko,ify:Ao,ing:"Gerund",ize:Ao,ibe:Ao,lar:ko,mum:ko,nes:jo,nny:ko,ous:ko,que:ko,rol:xo,sis:xo,ogy:xo,oid:xo,ian:xo,zes:jo,eld:Eo,ken:Vo,ven:Vo,ten:Vo,ect:Ao,ict:Ao,ign:Ao,ful:ko,bal:ko},{amed:Eo,aped:Eo,ched:Eo,lked:Eo,rked:Eo,reed:Eo,nded:Eo,mned:ko,cted:Eo,dged:Eo,ield:xo,akis:Co,cede:Ao,chuk:Co,czyk:Co,ects:jo,ends:Go,enko:Co,ette:xo,wner:xo,fies:jo,fore:No,gate:Ao,gone:ko,ices:Io,ints:Io,ruct:Ao,ines:Io,ions:Io,less:ko,llen:ko,made:ko,nsen:Co,oses:jo,ould:Oo,some:ko,sson:Co,tion:xo,tage:Do,ique:xo,tive:ko,tors:Do,vice:xo,lier:xo,fier:xo,wned:Eo,gent:xo,tist:xo,pist:xo,rist:xo,mist:xo,yist:xo,vist:xo,lite:xo,site:xo,rite:xo,mite:xo,bite:xo,mate:xo,date:xo,ndal:xo,vent:xo,uist:xo,gist:xo,note:xo,cide:xo,wide:ko,vide:Ao,ract:Ao,duce:Ao,pose:Ao,eive:Ao,lyze:Ao,lyse:Ao,iant:ko,nary:ko},{elist:xo,holic:xo,phite:xo,tized:Eo,urned:Eo,eased:Eo,ances:Io,bound:ko,ettes:Io,fully:No,ishes:jo,ities:Io,marek:Co,nssen:Co,ology:Do,osome:xo,tment:xo,ports:Io,rough:ko,tches:jo,tieth:"Ordinal",tures:Io,wards:No,where:No,archy:Do,pathy:Do,opoly:Do,embly:Do,phate:Do,ndent:xo,scent:xo,onist:xo,anist:xo,alist:xo,olist:xo,icist:xo,ounce:Ao,iable:ko,borne:ko,gnant:ko,inant:ko,igent:ko,atory:ko,rient:xo,dient:xo},{auskas:Co,parent:xo,cedent:xo,ionary:xo,cklist:xo,keeper:To,logist:To,teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const zo="Adjective",$o="Noun",Fo="Verb";var So=[null,null,{},{neo:$o,bio:$o,"de-":Fo,"re-":Fo,"un-":Fo},{anti:$o,auto:$o,faux:zo,hexa:$o,kilo:$o,mono:$o,nano:$o,octa:$o,poly:$o,semi:zo,tele:$o,"pro-":zo,"mis-":Fo,"dis-":Fo,"pre-":zo},{anglo:$o,centi:$o,ethno:$o,ferro:$o,grand:$o,hepta:$o,hydro:$o,intro:$o,macro:$o,micro:$o,milli:$o,nitro:$o,penta:$o,quasi:zo,radio:$o,tetra:$o,"omni-":zo,"post-":zo},{pseudo:zo,"extra-":zo,"hyper-":zo,"inter-":zo,"intra-":zo,"deca-":zo},{electro:$o}];const Ho="Adjective",Mo="Infinitive",Lo="PresentTense",Wo="Singular",Jo="PastTense",qo="Adverb",Ko="Expression",Uo="Actor",Ro="Verb",Qo="Noun",_o="LastName";var Zo={a:[[/.[aeiou]na$/,Qo,"tuna"],[/.[oau][wvl]ska$/,_o],[/.[^aeiou]ica$/,Wo,"harmonica"],[/^([hyj]a+)+$/,Ko,"haha"]],c:[[/.[^aeiou]ic$/,Ho]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Jo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Jo,"rammed"],[/.[aeiou][sg]hed$/,Jo,"gushed"],[/.[aeiou]red$/,Jo,"hired"],[/.[aeiou]r?ried$/,Jo,"hurried"],[/[^aeiou]ard$/,Wo,"steward"],[/[aeiou][^aeiou]id$/,Ho,""],[/.[vrl]id$/,Ho,"livid"],[/..led$/,Jo,"hurled"],[/.[iao]sed$/,Jo,""],[/[aeiou]n?[cs]ed$/,Jo,""],[/[aeiou][rl]?[mnf]ed$/,Jo,""],[/[aeiou][ns]?c?ked$/,Jo,"bunked"],[/[aeiou]gned$/,Jo],[/[aeiou][nl]?ged$/,Jo],[/.[tdbwxyz]ed$/,Jo],[/[^aeiou][aeiou][tvx]ed$/,Jo],[/.[cdflmnprstv]ied$/,Jo,"emptied"]],e:[[/.[lnr]ize$/,Mo,"antagonize"],[/.[^aeiou]ise$/,Mo,"antagonise"],[/.[aeiou]te$/,Mo,"bite"],[/.[^aeiou][ai]ble$/,Ho,"fixable"],[/.[^aeiou]eable$/,Ho,"maleable"],[/.[ts]ive$/,Ho,"festive"],[/[a-z]-like$/,Ho,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ho,"cornish"],[/.v[iy]ch$/,_o,"..ovich"],[/^ug?h+$/,Ko,"ughh"],[/^uh[ -]?oh$/,Ko,"uhoh"],[/[a-z]-ish$/,Ho,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,_o,"polish-male"]],k:[[/^(k){2}$/,Ko,"kkkk"]],l:[[/.[gl]ial$/,Ho,"familial"],[/.[^aeiou]ful$/,Ho,"fitful"],[/.[nrtumcd]al$/,Ho,"natal"],[/.[^aeiou][ei]al$/,Ho,"familial"]],m:[[/.[^aeiou]ium$/,Wo,"magnesium"],[/[^aeiou]ism$/,Wo,"schism"],[/^[hu]m+$/,Ko,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ho,"republican"],[/[^aeiou]ician$/,Uo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ko,"noooo"],[/^(yo)+$/,Ko,"yoo"],[/^wo{2,}[pt]?$/,Ko,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Wo],[/[^i]fer$/,Mo],[/.[^aeiou][ao]pher$/,Uo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ho],[/[aeiou].*ist$/,Ho],[/^[a-z]et$/,Ro]],s:[[/.[^aeiou]ises$/,Lo],[/.[rln]ates$/,Lo],[/.[^z]ens$/,Ro],[/.[lstrn]us$/,Wo],[/.[aeiou]sks$/,Lo],[/.[aeiou]kes$/,Lo],[/[aeiou][^aeiou]is$/,Wo],[/[a-z]'s$/,Qo],[/^yes+$/,Ko]],v:[[/.[^aeiou][ai][kln]ov$/,_o]],y:[[/.[cts]hy$/,Ho],[/.[st]ty$/,Ho],[/.[tnl]ary$/,Ho],[/.[oe]ry$/,Wo],[/[rdntkbhs]ly$/,qo],[/.(gg|bb|zz)ly$/,Ho],[/...lly$/,qo],[/.[gk]y$/,Ho],[/[bszmp]{2}y$/,Ho],[/.[ai]my$/,Ho],[/[ea]{2}zy$/,Ho],[/.[^aeiou]ity$/,Wo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ri={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ai={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ii);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ii,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},di=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const pi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),mi=hi(ai),gi=hi(ni),fi=hi(ri),bi=di(pi),vi=di(mi),yi=di(gi),wi=di(fi),Pi=hi(ti),ki=hi(oi);var Ai={fromPast:pi,fromPresent:mi,fromGerund:gi,fromParticiple:fi,toPast:bi,toPresent:vi,toGerund:yi,toParticiple:wi,toComparative:Pi,toSuperlative:ki,fromComparative:di(Pi),fromSuperlative:di(ki)},ji=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),xi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Ei=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ni[t].forEach(n=>e[n]=t),e),{});var Ii=Ni,Ti=function(e){let t=e.substring(e.length-3);if(!0===Ii.hasOwnProperty(t))return Ii[t];let n=e.substring(e.length-2);return!0===Ii.hasOwnProperty(n)?Ii[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Gi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ti(e)),Gi.hasOwnProperty(e))c=Gi[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,r);else if("PresentTense"===n)c=si(l,a);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ci=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,r),Gerund:si(i,a),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Oi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Vi="ically",Bi=new Set(["analyt"+Vi,"chem"+Vi,"class"+Vi,"clin"+Vi,"crit"+Vi,"ecolog"+Vi,"electr"+Vi,"empir"+Vi,"frant"+Vi,"grammat"+Vi,"ident"+Vi,"ideolog"+Vi,"log"+Vi,"mag"+Vi,"mathemat"+Vi,"mechan"+Vi,"med"+Vi,"method"+Vi,"method"+Vi,"mus"+Vi,"phys"+Vi,"phys"+Vi,"polit"+Vi,"pract"+Vi,"rad"+Vi,"satir"+Vi,"statist"+Vi,"techn"+Vi,"technolog"+Vi,"theoret"+Vi,"typ"+Vi,"vert"+Vi,"whims"+Vi]),zi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],$i=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Fi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?Bi.has(e)?e.replace(/ically/,"ical"):$i.has(e)?null:Fi.hasOwnProperty(e)?Fi[e]:Oi(e,zi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Mi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Li=function(e){if(Mi.hasOwnProperty(e))return Mi[e];let t=Oi(e,Hi);return t||e+"ly"};const Wi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ji={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},qi=new Set(["terrible","annoying"]),Ki=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Qi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Oa,nounToSingular:Ei,verbToInfinitive:Di,getTense:Ti,verbConjugate:Ci,adjToSuperlative:Ki,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Li,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(qi.has(e))return null;let t=Oi(e,Wi);return t||e+"ness"}}}},_i=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Zi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(r,"Infinitive","Verb"),Object.assign(s,l),l=Zi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zi(o,"Adjective","Superlative"),Object.assign(s,l),l=Zi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:Qi};let{lex:r,_multi:a}=Qi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ns=function(e,t,n){let r=Ci(e,Xi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(a,r,!1),"Adj|Present"===o&&(ns(a,r,!0),function(e,t,n){let r=Ki(e,n);t[r]=t[r]||"Superlative";let a=Ui(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(a,Xi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(a,Xi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let as={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:Pa,models:Ai,suffixPatterns:Bo,prefixPatterns:So,endsWith:Zo,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:za,clues:Po,uncountable:{},orgWords:ji}};as=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=rs(e.two.switches,e),e=Yi(e),e=_i(e)}(as);var os=as;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(is.test(a.normal)){let e=a.normal.replace(is,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ls=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const ps=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ms=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ti(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(r)};const gs=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,bs=["Date","Month","WeekDay","Unit"],vs=/^[IVXLCDM]{2,}$/,ys=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Ps=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===gs.test(o)&&!1===fs.test(o)?bs.find(e=>r.tags.has(e))?null:(ms(e,t,n),r.tags.has("Noun")||r.tags.clear(),ls(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&vs.test(o)&&ys.test(o)&&!ws[r.normal]?(ls(r,"RomanNumeral","2-xvii"),!0):null};const ks=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var As=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ks(r.normal,n.two.suffixPatterns);if(null!==e)return ls(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ks(r.implicit,n.two.suffixPatterns),null!==e))return ls(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const js=/['‘’‛‵′`´]/,xs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ls(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Is=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ts=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Is.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ds=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ts(a)||Ts(o))return ls(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gs(a)||Gs(o))return ls(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return ls(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Vs=/^[A-Z-]+$/,Bs=/([A-Z]\.)+[A-Z]?,?$/,zs=/[A-Z]{2,}('s|,)?$/,$s=/([a-z]\.)+[a-z]\.?$/,Fs={I:!0,A:!0};var Ss=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Vs.test(n)||n.length>5||Fs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Bs.test(n)&&!0!==$s.test(n)&&!0!==Os.test(n)&&!0!==zs.test(n))}(r,n)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Fs.hasOwnProperty(r.text)&&Os.test(r.text)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ls(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Vs.test(r.text)&&r.text.length<=6?(ls(r,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ms=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ls=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],a),l=l||Hs(e[t+1],o),l=l||Ms(e[t-1],r),l=l||Ms(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ms(e,t,n),e[t].confidence=.2,!0}return null};const Ws=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Js=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ws(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ws(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},qs=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ms(e,t,n),e[t].confidence=.1)};const Ks=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>Ks(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t&&Ks(e,t)};const Qs="undefined"!=typeof process&&process.env?process.env:self.env||{},_s=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Qs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ys=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Qs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Es,checkCase:Ps,checkPrefix:Ns,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Ls,orgWords:Js,nounFallback:qs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(_s.test(l)&&!o[l]&&(l=l.replace(_s,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Zs(e[t+1],n.afterWords);return o=o||Zs(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,a),o=o||Ys(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Rs[o]&&(u=Rs[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Qs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},al={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vl=/'/;var yl=function(e,t){let n=e[t].normal.split(vl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},kl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(Pl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===kl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const jl=/'/,xl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},El={d:(e,t)=>yl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bl(e,t)},Nl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Il={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===jl.test(r[o].normal)&&([,i]=r[o].normal.split(jl));let s=null;El.hasOwnProperty(i)&&(s=El[i](r,o,t)),s&&(s=Nl(s,e),gl(n,[a,o],s),xl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ml.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=pl},hooks:["contractionTwo"]};const Tl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Gl=["i","we","they"];let Dl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Tl+" #Person",tag:"Person",reason:"randy-smith"},{match:Tl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Tl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Cl=Cl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Dl}},hooks:["postTagger"]},Vl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Bl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Vl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},zl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},$l=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?zl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Fl={api:function(e){e.prototype.swap=$l}};m.plugin(cl),m.plugin(Il),m.plugin(Ol),m.plugin(Bl),m.plugin(Fl);var Sl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Hl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ml={this:"Noun",then:"Pivot"};var Ll=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},_l={compute:{chunks:function(e){const{document:t,world:n}=e;Ll(t),Wl(t),Kl(e,t,n),Rl(t),Ql(t)}},api:function(e){e.prototype.chunks=Hl,e.prototype.clauses=Sl},hooks:["chunks"]};const Zl=/'s$/;var Yl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Xl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Xl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const ru={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},au=RegExp("("+Object.keys(ru).join("|")+")"),ou=RegExp("("+Object.values(ru).join("|")+")"),iu=function(e,t){const n=e[t].pre.match(au)[0]||"";if(!n||!ru[n])return null;const r=ru[n];for(;t{e[0].pre=e[0].pre.replace(au,"");let t=e[e.length-1];t.post=t.post.replace(ou,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const lu=/\./g;var uu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},cu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const hu=(e,t)=>"number"==typeof t?e.eq(t):e,du=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var pu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=du(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=hu(t,e),new Adjectives(t.document,t.pointer)}};const mu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},gu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let fu=[["emojis","emoji"],["atmentions","atMentions"]];var bu=function(e){gu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=mu,fu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},vu={api:function(e){bu(e),Yl(e),nu(e),su(e),pu(e),cu(e),uu(e)}};const yu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var wu={case:e=>{yu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;yu(e,e=>e.text=n(e.text,t))},whitespace:e=>{yu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{yu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),ku="unicode|punctuation|whitespace|acronyms",Au="|case|contractions|parentheses|quotations|emoji|honorifics",ju={light:Pu(ku),medium:Pu(ku+Au),heavy:Pu(ku+Au+"|possessives|adverbs|nouns|verbs")};var xu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ju[e]),Object.keys(e).forEach(t=>{wu.hasOwnProperty(t)&&wu[t](this,e[t])}),this}}},Eu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Nu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Iu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Gu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Tu(e,t),isSubordinate:Iu(e),root:t}};const Du=e=>e.text(),Cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Ou=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Vu=function(e){let t=Gu(e);return{root:Du(t.root),number:Ou(t.number),determiner:Du(t.determiner),adjectives:Cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Bu={tags:!0};var zu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Bu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Bu),e};const $u={tags:!0};var Fu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,$u).tag("Singular","toPlural"),e};const Su=(e,t)=>"number"==typeof t?e.eq(t):e;var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Su(this,e).map(Gu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Vu(t)),n},[])}isPlural(e){let t=this.filter(e=>Gu(e).isPlural);return Su(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Gu(e).adjectives;n.found&&(t=t.concat(n))}),Su(t,e)}toPlural(e){return Su(this,e).map(e=>zu(e,Gu(e)))}toSingular(e){return Su(this,e).map(e=>{let t=Gu(e);return Fu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Eu(this);return t=Su(t,e),new Nouns(this.document,t.pointer)}}},Mu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Lu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Wu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Wu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Wu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},qu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Uu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ru={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Qu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var _u=function(e){if(!0===Ru.hasOwnProperty(e))return Ru[e];if("a"===e||"an"===e)return 1;const t=Lu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Yu(n),r=Yu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Yu(n);let a=r.text("reduced");return Zu.test(a)&&(a=a.replace(Zu,""),r=r.replaceWith(a)),r=Xu.hasOwnProperty(a)?Xu[a]:Yu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Yu(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},tc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const nc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],rc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ac=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],oc=function(e){let t=[];if(e>100)return t;for(let n=0;n=nc[n][1]&&(e-=nc[n][1],t.push(nc[n][0]));return rc[e]&&t.push(rc[e]),t};var ic=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=tc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ac.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(oc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=tc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},sc=function(e){return e.numerator&&e.denominator?`${ic({num:e.numerator})} out of ${ic({num:e.denominator})}`:""};const lc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var uc=e=>{let t=ic(e).split(" "),n=t[t.length-1];return lc.hasOwnProperty(n)?t[t.length-1]=lc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},cc=function(e){if(!e.numerator||!e.denominator)return"";let t=ic({num:e.numerator}),n=uc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return hc(this,e).map(ec)}get(e){return hc(this,e).map(ec)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(t);return n.fraction=r,n},[])}toDecimal(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return hc(this,e).forEach(e=>{let t=ec(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=cc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=sc(t);e.replaceWith(n)}),this}toPercentage(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Mu(this);return t=hc(t,e),new Fractions(this.document,t.pointer)}};const pc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var mc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+pc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+pc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+pc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+pc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${pc})`),r=e.has("("+pc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+pc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+pc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},gc=function(e){if("string"==typeof e)return{num:_u(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=ec(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=_u(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},fc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=tc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const bc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},vc={"%":"percent","°":"degrees"};var yc=function(e){let t={suffix:"",prefix:e.prefix};return bc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+bc[e.prefix],t.prefix=""),vc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+vc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},wc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=yc(e);return t+uc(e)+n}if("Ordinal"===t)return e.prefix+fc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=yc(e);return t+ic(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e;var kc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Pc(this,e).map(gc)}get(e){return Pc(this,e).map(gc).map(e=>e.num)}json(e){return Pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=gc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=gc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=wc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=gc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=wc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>gc(t).num===e)}greaterThan(e){return this.filter(t=>gc(t).num>e)}lessThan(e){return this.filter(t=>gc(t).num{let r=gc(n).num;return r>e&&r{let n=gc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=gc(e).num);let t=this.map(t=>{let n=gc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=mc(this);return t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Ac={api:function(e){dc(e),kc(e)}};const jc={people:!0,emails:!0,phoneNumbers:!0,places:!0},xc=function(e={}){return!1!==(e=Object.assign({},jc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Ec={api:function(e){e.prototype.redact=xc}},Nc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Ic=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Tc=function(e){let t=e.clauses(),n=Ic(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Gc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Cc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},Oc=function(e){return e.verbs().toInfinitive(),e};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Tc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Vc(this,e).map(e=>(Tc(e),Gc(e)))}toPresentTense(e){return Vc(this,e).map(e=>(Tc(e),Dc(e)))}toFutureTense(e){return Vc(this,e).map(e=>(Tc(e),e=Cc(e)))}toInfinitive(e){return Vc(this,e).map(e=>(Tc(e),Oc(e)))}toNegative(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Vc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Vc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Vc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Nc(this);return Vc(t,e)}};Object.assign(e.prototype,t)}},zc=function(e){return e.match("#Honorific+? #Person+")},$c=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Fc="male",Sc="female",Hc={mr:Fc,mrs:Sc,miss:Sc,madam:Sc,king:Fc,queen:Sc,duke:Fc,duchess:Sc,baron:Fc,baroness:Sc,count:Fc,countess:Sc,prince:Fc,princess:Sc,sire:Fc,dame:Sc,lady:Sc,ayatullah:Fc,congressman:Fc,congresswoman:Sc,"first lady":Sc,mx:null};var Mc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Sc;if(n.has("#MaleName"))return Fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Hc.hasOwnProperty(e))return Hc[e];if(/^her /.test(e))return Sc;if(/^his /.test(e))return Fc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Fc;if(n&&!t)return Sc}return null};const Lc=(e,t)=>"number"==typeof t?e.eq(t):e;var Wc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Lc(this,e).map($c)}json(e){return Lc(this,e).map(t=>{let n=t.toView().json(e)[0],r=$c(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Mc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=zc(this);return t=Lc(t,e),new People(this.document,t.pointer)}},Jc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},qc=function(e){e.prototype.places=function(t){let n=Jc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Kc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Uc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Rc=function(e){e.prototype.topics=Uc},Qc={api:function(e){Wc(e),qc(e),Kc(e),Rc(e)}},_c=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Zc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Yc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Xc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},eh=function(e){return e.match("#Negative")},th=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var nh=function(e){let t=e.clone();t.contractions().expand();const n=Zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Yc(t,n),auxiliary:Xc(t,n),negative:eh(t),phrasal:th(n)}};const rh={tense:"PresentTense"},ah={conditional:!0},oh={tense:"FutureTense"},ih={progressive:!0},sh={tense:"PastTense"},lh={complete:!0,progressive:!1},uh={passive:!0},ch=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},hh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[rh]],["^wanted to #Infinitive$",[sh]],["^will want to #Infinitive$",[oh]]],"gerund-phrase":[["^#PastTense #Gerund$",[sh]],["^#PresentTense #Gerund$",[rh]],["^#Infinitive #Gerund$",[rh]],["^will #Infinitive #Gerund$",[oh]],["^have #PastTense #Gerund$",[sh]],["^will have #PastTense #Gerund$",[sh]]],"simple-present":[["^#PresentTense$",[rh]],["^#Infinitive$",[rh]]],"simple-past":[["^#PastTense$",[sh]]],"simple-future":[["^will #Adverb? #Infinitive",[oh]]],"present-progressive":[["^(is|are|am) #Gerund$",[rh,ih]]],"past-progressive":[["^(was|were) #Gerund$",[sh,ih]]],"future-progressive":[["^will be #Gerund$",[oh,ih]]],"present-perfect":[["^(has|have) #PastTense$",[sh,lh]]],"past-perfect":[["^had #PastTense$",[sh,lh]],["^had #PastTense to #Infinitive",[sh,lh]]],"future-perfect":[["^will have #PastTense$",[oh,lh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[sh,ih]]],"past-perfect-progressive":[["^had been #Gerund$",[sh,ih]]],"future-perfect-progressive":[["^will have been #Gerund$",[oh,ih]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[sh,uh]],["^(was|were) being (#PastTense|#Participle)",[sh,uh]],["^(had|have) been (#PastTense|#Participle)",[sh,uh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[rh,uh]],["^(is|are|am) being (#PastTense|#Participle)",[rh,uh]],["^has been (#PastTense|#Participle)",[rh,uh]]],"passive-future":[["will have been (#PastTense|#Participle)",[oh,uh,ah]],["will be being? (#PastTense|#Participle)",[oh,uh,ah]]],"present-conditional":[["would be #PastTense",[rh,ah]]],"past-conditional":[["would have been #PastTense",[sh,ah]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[oh]]],"auxiliary-past":[["^did #Infinitive$",[sh,{plural:!1}]],["^used to #Infinitive$",[sh,lh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[rh,lh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[sh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let dh=[];Object.keys(hh).map(e=>{hh[e].forEach(t=>{dh.push({name:e,match:t[0],data:ch(t[1])})})});var ph=dh,mh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),gh(r)&&(n.remove(r),r=n.last()),gh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:fh(t,e)}};const vh=e=>e,yh=(e,t)=>{let n=bh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},wh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=bh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Ph=function(e,t){let n=bh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},kh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,kh(e)),r&&e.replace(t.root,r),e},jh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),xh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Eh=function(e){return e&&e.isView?e.text("normal"):""},Nh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,kh(e))};var Ih=function(e){let t=nh(e);e=e.clone().toView();const n=mh(e,t);return{root:t.root.text(),preAdverbs:xh(t.adverbs.pre),postAdverbs:xh(t.adverbs.post),auxiliary:Eh(t.auxiliary),negative:t.negative.found,prefix:Eh(t.prefix),infinitive:Nh(t.root),grammar:n}};const Th={tags:!0};var Gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,kh(r)),i&&e.replace(r,i,Th).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Dh={tags:!0},Ch={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,kh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=bh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ch.simple(e,t),e=Ch.noAux(e,t))},hasHad:e=>(e.replace("has","had",Dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),n(o,e.model).Participle}},Oh={infinitive:Ch.simple,"simple-present":Ch.simple,"simple-past":vh,"simple-future":Ch.both,"present-progressive":e=>(e.replace("are","were",Dh),e.replace("(is|are|am)","was",Dh),e),"past-progressive":vh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ch.hasHad,"past-perfect":vh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=jh(e)),e.remove("have"),e),"present-perfect-progressive":Ch.hasHad,"past-perfect-progressive":vh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Dh),e),"passive-past":e=>(e.replace("have","had",Dh),e),"passive-present":e=>(e.replace("(is|are)","was",Dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":vh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Dh),e),"auxiliary-past":vh,"auxiliary-present":e=>(e.replace("(do|does)","did",Dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Dh):(Ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":vh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch.simple(e,t),jh(e),e)};var Vh=function(e,t,n){return Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Bh={tags:!0},zh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=wh(e)),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("PresentTense"),e},$h=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("Gerund"),e},Fh={infinitive:zh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return zh(e,t);{let t=bh(e).subject;if(yh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Bh)}return e},"simple-past":zh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=wh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else zh(e,t),e=e.remove("will");return e},"present-progressive":vh,"past-progressive":(e,t)=>{let n=wh(e);return e.replace("(were|was)",n,Bh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(zh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=bh(e).subject;return yh(e)||n.has("i")?((e=Ah(e,t)).remove("had"),e):(e.replace("had","has",Bh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":vh,"past-perfect-progressive":e=>e.replace("had","has",Bh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=wh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Bh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":vh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":vh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>($h(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Ph(e);return e.replace(t.auxiliary,n),e}return $h(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":vh,"modal-infinitive":vh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,kh(r)),a&&(e=e.replace(t.root,a,Bh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),zh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return yh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Bh),e.remove("will"),e}};var Sh=function(e,t,n){return Fh.hasOwnProperty(n)?((e=Fh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hh={tags:!0},Mh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,kh(r)),o&&(e=e.replace(r,o,Hh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Lh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,kh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Hh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Wh={infinitive:Mh,"simple-present":Mh,"simple-past":Mh,"simple-future":vh,"present-progressive":Lh,"past-progressive":Lh,"future-progressive":vh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":vh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":vh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":vh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":vh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":vh,"modal-past":vh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Mh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jh=function(e,t,n){return e.has("will")||e.has("going to")?e:Wh.hasOwnProperty(n)?((e=Wh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qh={tags:!0};var Kh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,kh(a));let s=r(i,e.model).Gerund;return s&&(s=`${wh(e)} ${s}`,e.replace(a,s,qh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Uh={tags:!0},Rh=function(e,t){let n=Ph(e);return e.prepend(n+" not"),e},Qh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},_h=e=>e.has("(is|was|am|are|will|were|be)"),Zh={"simple-present":(e,t)=>!0===_h(e)?Qh(e):(e=Ah(e,t),e=Rh(e)),"simple-past":(e,t)=>!0===_h(e)?Qh(e):((e=Ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_h(e)?Qh(e):Rh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Uh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Rh(e)).replace("wants","want",Uh)};var Yh=function(e,t,n){if(e.has("#Negative"))return e;if(Zh.hasOwnProperty(n))return e=Zh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_h(e)?Qh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Xh=(e,t)=>"number"==typeof t?e.eq(t):e;var ed={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Xh(this,e).map(nh)}json(e,t){return Xh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ih(t),n},[])}subjects(e){return Xh(this,e).map(e=>(nh(e),bh(e).subject))}adverbs(e){return Xh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Xh(this,e).filter(e=>!0!==bh(e).plural)}isPlural(e){return Xh(this,e).filter(e=>!0===bh(e).plural)}isImperative(e){return Xh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Gh(e,t,n.form)})}toPresentTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Sh(e,t,n.form)})}toPastTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Vh(e,t,n.form)})}toFutureTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Jh(e,t,n.form)})}toGerund(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Kh(e,t,n.form)})}conjugate(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Gh(e.clone(),t,n.form).text("normal"),PastTense:Vh(e.clone(),t,n.form).text("normal"),PresentTense:Sh(e.clone(),t,n.form).text("normal"),FutureTense:Jh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Yh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=_c(this);return t=Xh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(_l),m.plugin(vu),m.plugin(xu),m.plugin(Hu),m.plugin(Ac),m.plugin(Ec),m.plugin(Bc),m.plugin(Qc),m.plugin(ed),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const m=function(e,t){t&&m.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(e,t){const{compute:n}=this._world;t&&m.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(e){return u(e,this._world,s,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},m.version="14.4.0";var p=m;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let r=A(k.toString(36));r+=A(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const E=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},x=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:x(e)?x(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(E(t.update([u]).firstTerm()),P(h,u,d,r)):(E(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(T,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};B.delete=B.remove;var V=B;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),L.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},G,C,V,$,M,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Q=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const me=/'/,pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===me.test(r[s].normal)&&([l,u]=r[s].normal.split(me));let c=ve(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](r,s)),c?(c=ye(c,e),_(n,[i,s],c),ge(n[i],e,s,c.length)):pe.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),_(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),_(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ee={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},xe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ne=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Te=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Te(e.goNext,void 0),e.failTo=Te(e.failTo,0),e.endAs=Te(e.endAs,null),e};const Ce={buildTrie:function(e){const t=xe(e,this.world());return De(t)}};Ce.compile=Ce.buildTrie;var Oe={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:xe(e,this.world));var r;let a=Ge(this,n,t);return a=a.settle(),a}},lib:Ce};const Be=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Be(n,t),Object.keys(r).forEach(e=>{r[e]=Be(r[e],t)}),{ptrs:n,byGroup:r}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),$e=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,Se=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var He={matchOne:function(e,t,n){const r=this.methods.one;if($e(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if($e(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Se(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if($e(e))return e.fullPointer.length>0;if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if($e(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if($e(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},Le={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},We=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Je=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},qe={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)}};qe.split=qe.splitAfter;var Ke=qe;const Ue=Object.assign({},He,Le,Ke);Ue.lookBehind=Ue.before,Ue.lookBefore=Ue.before,Ue.lookAhead=Ue.after,Ue.lookAfter=Ue.after,Ue.notIf=Ue.ifNo;var Re=function(e){Object.assign(e.prototype,Ue)};const _e=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ze=/ /g,Ye=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Xe=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var et=function(e){let t=e.split(_e),n=[];t.forEach(e=>{Ye(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Xe(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ye(e)?r.push(e):r=r.concat(e.split(Ze))}),r=Xe(r),r};const tt=/\{([0-9]+)?(, *[0-9]*)?\}/,nt=/&&/,rt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),ot=e=>e.charAt(e.length-1),it=e=>e.charAt(0),st=e=>e.substring(1),lt=e=>e.substring(0,e.length-1),ut=function(e){return e=st(e),e=lt(e)},ct=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ot(e)&&(n.end=!0,e=lt(e)),"^"===it(e)&&(n.start=!0,e=st(e)),("["===it(e)||"]"===ot(e))&&(n.group=null,"["===it(e)&&(n.groupStart=!0),"]"===ot(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===it(e))){const t=rt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ot(e)&&(n.greedy=!0,e=lt(e)),"*"!==e&&"*"===ot(e)&&"\\*"!==e&&(n.greedy=!0,e=lt(e)),"?"===ot(e)&&(n.optional=!0,e=lt(e)),"!"===it(e)&&(n.negative=!0,e=st(e)),"~"===it(e)&&"~"===ot(e)&&e.length>2&&(e=ut(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===it(e)&&")"===ot(e)){nt.test(e)?(n.choices=e.split(nt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=st(n.choices[0]);let r=n.choices.length-1;n.choices[r]=lt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ct(e,t))),e=""}if("/"===it(e)&&"/"===ot(e))return e=ut(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===it(e)&&"}"===ot(e)){if(e=ut(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===it(e)&&">"===ot(e))return e=ut(e),n.chunk=at(e),n.greedy=!0,n;if("%"===it(e)&&"%"===ot(e))return e=ut(e),n.switch=e,n}return!0===tt.test(e)&&(e=e.replace(tt,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===it(e)?(n.tag=st(e),n.tag=at(n.tag),n):"@"===it(e)?(n.method=st(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ht=ct;const dt=/[a-z0-9][-–—][a-z]/i;var mt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&dt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},gt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ft=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=et(e);return r=r.map(e=>ht(e,t)),r=mt(r,n),r=pt(r,n),r=gt(r),r};const bt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var vt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Et=(e,t)=>-1!==e.pre.indexOf(t),xt={hasQuote:e=>wt.test(e.pre)||Pt.test(e.post),hasComma:e=>jt(e,","),hasPeriod:e=>!0===jt(e,".")&&!1===jt(e,"..."),hasExclamation:e=>jt(e,"!"),hasQuestionMark:e=>jt(e,"?")||jt(e,"¿"),hasEllipses:e=>jt(e,"..")||jt(e,"…")||Et(e,"..")||Et(e,"…"),hasSemicolon:e=>jt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>At.test(e.post)||At.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;var Nt=xt;let It=function(){};It=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(yt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Nt[t.method]&&!0===Nt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>It(e,t,n,r)):t.choices.some(t=>It(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var Gt=It;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Dt(e,e.t).length=r-e.t),e.t=r,!0)};const Ot=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Gt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Gt(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Dt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==Gt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},$t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Gt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Gt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ft=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},St=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Ht=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&$t(e),r.implicit&&e.terms[e.t+1]&&St(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ft(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Dt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Lt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Tt(e,a)){if(!0!==Gt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!zt(a))return null;if(!0!==e.optional)return null}else if(!Ht(a))return null}else if(!Ht(a))return null}else if(!Ht(a))return null}else if(!Vt(a))return null}else if(!Bt(a))return null}else if(!Ct(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Wt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Jt=function(e,t,n){let r=Lt(e,t,0,e.length);return r?(r=Wt(r,n),r):null};var qt={api:Re,methods:{one:{termMethods:Nt,parseMatch:ft,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Jt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,Ut=/^#./,Rt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var _t={html:function(e){let{starts:t,ends:n}=Rt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(Zt,""),Xt.test(a)&&(a=" "),a=a.replace(Yt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Zt,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&en.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let an=[],on=0;for(;on<64;)an[on]=0|4294967296*Math.sin(++on%Math.PI);function sn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(on=i=0;on>4]+an[i]+~~o[on|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const ln={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const cn=function(e,t){return Object.assign({},e,t)},hn={text:e=>tn(e,{keepPunct:!0},!1),normal:e=>tn(e,cn(rn.normal,{keepPunct:!0}),!1),implicit:e=>tn(e,cn(rn.implicit,{keepPunct:!0}),!1),machine:e=>tn(e,un,!1),root:e=>tn(e,cn(un,{form:"root"}),!1),hash:e=>sn(tn(e,{keepPunct:!0},!1)),offset:e=>{let t=hn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const dn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},ln,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&hn[o]&&(a[o]=hn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};dn.data=dn.json;var mn=dn,pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const gn="";var fn={green:e=>""+e+gn,red:e=>""+e+gn,blue:e=>""+e+gn,magenta:e=>""+e+gn,cyan:e=>""+e+gn,yellow:e=>""+e+gn,black:e=>""+e+gn,dim:e=>""+e+gn,i:e=>""+e+gn},bn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(fn.blue("\n ──────")),t.forEach(e=>{console.log(fn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=fn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=fn.blue(" │ ")+fn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return fn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},vn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(fn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(fn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(fn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(fn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},yn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${fn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const wn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Pn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},An={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&rn.hasOwnProperty(e)?t=Object.assign({},rn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Nn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var In=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},Gn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Nn,splitAll:In}}},Tn=function(e,t){let n=e.concat(t),r=Nn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>xn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Cn=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>xn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Bn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Vn={union:function(e){e=On(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)}};Vn.and=Vn.union,Vn.intersection=function(e){e=On(e,this);let t=Cn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)},Vn.not=function(e){e=On(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)},Vn.difference=Vn.not,Vn.complement=function(){let e=this.all(),t=Dn(e.fullPointer,this.fullPointer);return t=Bn(t,this.document),this.toView(t)},Vn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Tn(e,[t])}),e=Bn(e,this.document),this.update(e)};var zn={methods:Gn,api:function(e){Object.assign(e.prototype,Vn)}};const $n=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Fn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push($n(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push($n(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=$n(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Sn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Hn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Ln=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Fn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Sn(a,t.hooks);return o=Hn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Ln(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Jn=/ /,qn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Kn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Jn.test(t))!function(e,t,n,r){let a=t.split(Jn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Kn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nUn(e,t,n,r))};var Rn=Un,_n=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},er=e=>"[object Array]"===Object.prototype.toString.call(e),tr=e=>(e=e||"").trim(),nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Zn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Yn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Xn(t=e).forEach(Qn),t);var t},rr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Xn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},ar=function(e){let t=Xn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},or={text:rr,txt:rr,array:ar,flat:ar},ir=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(rr(e,!0)),null):or.hasOwnProperty(t)?or[t](e):e},sr=e=>{Xn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},lr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=tr(e),!lr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(er(e))return e.forEach(e=>this.add(tr(e),t)),this;e=tr(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=tr(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Xn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Xn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Xn(this.json)}fillDown(){var e;return e=this.json,Xn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){sr(this.json);let e=Xn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return sr(this.json),ir(this.json,e)}debug(){return sr(this.json),ir(this.json,"debug"),this}}const ur=function(e){let t=nr(e);return new g$1(t)};ur.prototype.plugin=function(e){e(this)};var cr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const hr=function(e){if(cr.hasOwnProperty(e.id))return cr[e.id];if(cr.hasOwnProperty(e.is))return cr[e.is];let t=e._cache.parents.find(e=>cr[e]);return cr[t]};var dr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:hr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const mr=function(e){return e?"string"==typeof e?[e]:e:[]};var pr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=mr(e[t].children),e[t].not=mr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},gr={one:{setTag:Rn,unTag:_n,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=pr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return ur(t).cache().fillDown().out("array")}(Object.assign({},t,e));return dr(n)}}};const fr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var br={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),fr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return fr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},vr=function(e){Object.assign(e.prototype,br)},yr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const wr=new Set(["Auxiliary","Possessive"]);var Pr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(wr.has(e)||!t.hasOwnProperty(n))return 1;if(wr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:gr,api:vr,lib:yr};const kr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Ar=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var jr=function(e){let t=[],n=e.split(Ar);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const Gr=/\S/,Tr=/^\s+/;var Dr=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Gr.test(e))return[];e=e.replace(" "," ");let n=jr(e),r=Nr(n),a=Ir(r,t);if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Lr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Kr=/^'[0-9]{2}/;var Ur=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Lr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!qr.test(e)?"'"===n&&Kr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Wr.test(a)&&/[sn]['’]$/.test(t)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Rr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const _r=/([A-Z]\.)+[A-Z]?,?$/,Qr=/^[A-Z]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(e){return function(e){return!0===_r.test(e)||!0===Yr.test(e)||!0===Qr.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ea=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Rr(r),r=n(r,t),r=Xr(r),e.normal=r};const ta=/[ .][A-Z]\.? *$/i,na=/(?:\u2026|\.{2,}) *$/,ra=/\p{L}/u;var aa={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Dr,isSentence:function(e,t){if(!1===ra.test(e))return!1;if(!0===ta.test(e))return!1;if(!0===na.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Sr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=zr(n),n=Br(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ur(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ea(e,t)}),n})}}}},oa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ia={},sa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ia[t]=!0,sa[t]="Abbreviation",void 0!==e[1]&&(sa[t]=[sa[t],e[1]])})});var la=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ua={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ca={};Object.keys(ua).forEach((function(e){ua[e].split("").forEach((function(t){ca[t]=e}))}));const ha=/\//,da=/[a-z]\.[a-z]/i,ma=/[0-9]/;var pa=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ha.test(n)&&!da.test(n)&&!ma.test(n)){let t=n.split(ha);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ga=/^\p{Letter}+-\p{Letter}+$/u;var fa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ga.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ba=function(e){let t=0,n=0,r=e.document;for(let e=0;eva(e,pa),machine:e=>va(e,fa),normal:e=>va(e,ea),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ka={safe:!0,min:3};var Aa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=wa},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ka,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Pa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};p.extend(U),p.extend(En),p.extend(qt),p.extend(zn),p.extend(Pr),p.plugin(we),p.extend(ya),p.plugin(f),p.extend(Oe),p.extend(Aa),p.extend(Ee),p.extend(Wn);var ja={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Ea={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const xa=36,Na="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ia=Na.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ga=function(e){if(void 0!==Ia[e])return Ia[e];let t=0,n=1,r=xa,a=1;for(;n=0;n--,a*=xa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Ta=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ca(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Oa(Ea[e]);$a.test(e)?Object.keys(t).forEach(t=>{if(Sa[t]=e,"Noun|Verb"===e){let e=za(t,Ha);Sa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Fa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Fa[e]="Emoticon"),delete Fa[""],delete Fa.null,delete Fa[" "];const La="Adjective";var Ma={beforeTags:{Determiner:La,Possessive:La},afterTags:{Adjective:La},beforeWords:{seem:La,seemed:La,seems:La,feel:La,feels:La,felt:La,appear:La,appears:La,appeared:La,also:La,over:La,under:La,too:La,it:La,but:La,still:La,really:La,quite:La,well:La,very:La,deeply:La,profoundly:La,extremely:La,so:La,badly:La,mostly:La,totally:La,awfully:La,rather:La,nothing:La,something:La,anything:La,not:La,me:La},afterWords:{too:La,also:La,or:La}};const Wa="Gerund";var Ja={beforeTags:{Adverb:Wa,Preposition:Wa,Conjunction:Wa},afterTags:{Adverb:Wa,Possessive:Wa,Person:Wa,Pronoun:Wa,Determiner:Wa,Copula:Wa,Preposition:Wa,Conjunction:Wa,Comparative:Wa},beforeWords:{been:Wa,keep:Wa,continue:Wa,stop:Wa,am:Wa,be:Wa,me:Wa,began:Wa,start:Wa,starts:Wa,started:Wa,stops:Wa,stopped:Wa,help:Wa,helps:Wa,avoid:Wa,avoids:Wa,love:Wa,loves:Wa,loved:Wa,hate:Wa,hates:Wa,hated:Wa},afterWords:{you:Wa,me:Wa,her:Wa,him:Wa,them:Wa,their:Wa,it:Wa,this:Wa,there:Wa,on:Wa,about:Wa,for:Wa}},qa={beforeTags:Object.assign({},Ma.beforeTags,Ja.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ma.afterTags,Ja.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ma.beforeWords,Ja.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ma.afterWords,Ja.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ka="Singular";var Ua={beforeTags:{Determiner:Ka,Possessive:Ka,Acronym:Ka,Noun:Ka,Adjective:Ka,PresentTense:Ka,Gerund:Ka,PastTense:Ka,Infinitive:Ka,Date:Ka},afterTags:{Value:Ka,Modal:Ka,Copula:Ka,PresentTense:Ka,PastTense:Ka,Demonym:Ka},beforeWords:{the:Ka,with:Ka,without:Ka,of:Ka,for:Ka,any:Ka,all:Ka,on:Ka,cut:Ka,cuts:Ka,save:Ka,saved:Ka,saves:Ka,make:Ka,makes:Ka,made:Ka,minus:Ka,plus:Ka,than:Ka,another:Ka,versus:Ka,neither:Ka,favorite:Ka,best:Ka,daily:Ka,weekly:Ka,linear:Ka,binary:Ka,mobile:Ka,lexical:Ka,technical:Ka,computer:Ka,scientific:Ka,formal:Ka},afterWords:{of:Ka,system:Ka,aid:Ka,method:Ka,utility:Ka,tool:Ka,reform:Ka,therapy:Ka,philosophy:Ka,room:Ka,authority:Ka,says:Ka,said:Ka,wants:Ka,wanted:Ka}};const Ra={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var _a={beforeTags:Object.assign({},Ma.beforeTags,Ua.beforeTags,Ra.beforeTags),afterTags:Object.assign({},Ma.afterTags,Ua.afterTags),beforeWords:Object.assign({},Ma.beforeWords,Ua.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,Ua.afterWords)};const Qa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Za={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ya={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Xa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var eo={beforeTags:Object.assign({},Ma.beforeTags,Qa),afterTags:Object.assign({},Ma.afterTags,Za),beforeWords:Object.assign({},Ma.beforeWords,Ya),afterWords:Object.assign({},Ma.afterWords,Xa)};const to="Infinitive";var no={beforeTags:{Modal:to,Adverb:to,Negative:to,Plural:to},afterTags:{Determiner:to,Adverb:to,Possessive:to,Preposition:to},beforeWords:{i:to,we:to,you:to,they:to,to:to,please:to,will:to,have:to,had:to,would:to,could:to,should:to,do:to,did:to,does:to,can:to,must:to,us:to,me:to,he:to,she:to,it:to,being:to},afterWords:{the:to,me:to,you:to,him:to,her:to,them:to,it:to,a:to,an:to,up:to,down:to,by:to,out:to,off:to,under:to,when:to,all:to,to:to,because:to,although:to,before:to,how:to,otherwise:to,together:to,though:to,yet:to}};const ro={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ao={beforeTags:Object.assign({},Ma.beforeTags,no.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ma.afterTags,no.afterTags,ro.afterTags),beforeWords:Object.assign({},Ma.beforeWords,no.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,no.afterWords,{to:void 0})};const oo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},io={},so={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},lo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var uo={beforeTags:Object.assign({},Ja.beforeTags,Ua.beforeTags,oo),afterTags:Object.assign({},Ja.afterTags,Ua.afterTags,io),beforeWords:Object.assign({},Ja.beforeWords,Ua.beforeWords,so),afterWords:Object.assign({},Ja.afterWords,Ua.afterWords,lo)},co={beforeTags:Object.assign({},no.beforeTags,Ua.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},no.afterTags,Ua.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},no.beforeWords,Ua.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},no.afterWords,Ua.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ho="Person";var mo={beforeTags:{Honorific:ho,Person:ho,Preposition:ho},afterTags:{Person:ho,ProperNoun:ho,Verb:ho},ownTags:{ProperNoun:ho},beforeWords:{hi:ho,hey:ho,yo:ho,dear:ho,hello:ho},afterWords:{said:ho,says:ho,told:ho,tells:ho,feels:ho,felt:ho,seems:ho,thinks:ho,thought:ho,spends:ho,spendt:ho,plays:ho,played:ho,sing:ho,sang:ho,learn:ho,learned:ho,wants:ho,wanted:ho}};const po="Month",go={beforeTags:{Date:po,Value:po},afterTags:{Date:po,Value:po},beforeWords:{by:po,in:po,on:po,during:po,after:po,before:po,between:po,until:po,til:po,sometime:po,of:po,this:po,next:po,last:po,previous:po,following:po},afterWords:{sometime:po,in:po,of:po,until:po,the:po}};var fo={beforeTags:Object.assign({},mo.beforeTags,go.beforeTags),afterTags:Object.assign({},mo.afterTags,go.afterTags),beforeWords:Object.assign({},mo.beforeWords,go.beforeWords),afterWords:Object.assign({},mo.afterWords,go.afterWords)};const bo={Place:"Place"},vo={Place:"Place",Abbreviation:"Place"},yo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},wo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let Po="Unit";const ko={"Adj|Gerund":qa,"Adj|Noun":_a,"Adj|Past":eo,"Adj|Present":ao,"Noun|Verb":co,"Noun|Gerund":uo,"Person|Noun":{beforeTags:Object.assign({},Ua.beforeTags,mo.beforeTags),afterTags:Object.assign({},Ua.afterTags,mo.afterTags),beforeWords:Object.assign({},Ua.beforeWords,mo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ua.afterWords,mo.afterWords)},"Person|Date":fo,"Person|Verb":{beforeTags:Object.assign({},mo.beforeTags,no.beforeTags),afterTags:Object.assign({},mo.afterTags,no.afterTags),beforeWords:Object.assign({},mo.beforeWords,no.beforeWords),afterWords:Object.assign({},mo.afterWords,no.afterWords)},"Person|Place":{beforeTags:Object.assign({},bo,mo.beforeTags),afterTags:Object.assign({},vo,mo.afterTags),beforeWords:Object.assign({},yo,mo.beforeWords),afterWords:Object.assign({},wo,mo.afterWords)},"Unit|Noun":{beforeTags:{Value:Po},afterTags:{},beforeWords:{per:Po,every:Po,each:Po,square:Po,cubic:Po,sq:Po,metric:Po},afterWords:{per:Po,squared:Po,cubed:Po,long:Po}}},Ao=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};ko["Plural|Verb"]={beforeWords:Ao(ko["Noun|Verb"].beforeWords,{}),afterWords:Ao(ko["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Ao(ko["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ao(ko["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var jo=ko;const Eo="Adjective",xo="Infinitive",No="PresentTense",Io="Singular",Go="PastTense",To="Adverb",Do="Plural",Co="Actor",Oo="Verb",Bo="Noun",Vo="LastName",zo="Modal",$o="Participle";var Fo=[null,null,{ea:Io,ia:Bo,ic:Eo,ly:To,"'n":Oo,"'t":Oo},{oed:Go,ued:Go,xed:Go," so":To,"'ll":zo,"'re":"Copula",azy:Eo,eer:Bo,end:Oo,ped:Go,ffy:Eo,ify:xo,ing:"Gerund",ize:xo,ibe:xo,lar:Eo,mum:Eo,nes:No,nny:Eo,ous:Eo,que:Eo,rol:Io,sis:Io,ogy:Io,oid:Io,ian:Io,zes:No,eld:Go,ken:$o,ven:$o,ten:$o,ect:xo,ict:xo,ign:xo,ful:Eo,bal:Eo},{amed:Go,aped:Go,ched:Go,lked:Go,rked:Go,reed:Go,nded:Go,mned:Eo,cted:Go,dged:Go,ield:Io,akis:Vo,cede:xo,chuk:Vo,czyk:Vo,ects:No,ends:Oo,enko:Vo,ette:Io,wner:Io,fies:No,fore:To,gate:xo,gone:Eo,ices:Do,ints:Do,ruct:xo,ines:Do,ions:Do,less:Eo,llen:Eo,made:Eo,nsen:Vo,oses:No,ould:zo,some:Eo,sson:Vo,tion:Io,tage:Bo,ique:Io,tive:Eo,tors:Bo,vice:Io,lier:Io,fier:Io,wned:Go,gent:Io,tist:Io,pist:Io,rist:Io,mist:Io,yist:Io,vist:Io,lite:Io,site:Io,rite:Io,mite:Io,bite:Io,mate:Io,date:Io,ndal:Io,vent:Io,uist:Io,gist:Io,note:Io,cide:Io,wide:Eo,vide:xo,ract:xo,duce:xo,pose:xo,eive:xo,lyze:xo,lyse:xo,iant:Eo,nary:Eo},{elist:Io,holic:Io,phite:Io,tized:Go,urned:Go,eased:Go,ances:Do,bound:Eo,ettes:Do,fully:To,ishes:No,ities:Do,marek:Vo,nssen:Vo,ology:Bo,osome:Io,tment:Io,ports:Do,rough:Eo,tches:No,tieth:"Ordinal",tures:Do,wards:To,where:To,archy:Bo,pathy:Bo,opoly:Bo,embly:Bo,phate:Bo,ndent:Io,scent:Io,onist:Io,anist:Io,alist:Io,olist:Io,icist:Io,ounce:xo,iable:Eo,borne:Eo,gnant:Eo,inant:Eo,igent:Eo,atory:Eo,rient:Io,dient:Io},{auskas:Vo,parent:Io,cedent:Io,ionary:Io,cklist:Io,keeper:Co,logist:Co,teenth:"Value"},{opoulos:Vo,borough:"Place",sdottir:Vo}];const So="Adjective",Ho="Noun",Lo="Verb";var Mo=[null,null,{},{neo:Ho,bio:Ho,"de-":Lo,"re-":Lo,"un-":Lo},{anti:Ho,auto:Ho,faux:So,hexa:Ho,kilo:Ho,mono:Ho,nano:Ho,octa:Ho,poly:Ho,semi:So,tele:Ho,"pro-":So,"mis-":Lo,"dis-":Lo,"pre-":So},{anglo:Ho,centi:Ho,ethno:Ho,ferro:Ho,grand:Ho,hepta:Ho,hydro:Ho,intro:Ho,macro:Ho,micro:Ho,milli:Ho,nitro:Ho,penta:Ho,quasi:So,radio:Ho,tetra:Ho,"omni-":So,"post-":So},{pseudo:So,"extra-":So,"hyper-":So,"inter-":So,"intra-":So,"deca-":So},{electro:Ho}];const Wo="Adjective",Jo="Infinitive",qo="PresentTense",Ko="Singular",Uo="PastTense",Ro="Adverb",_o="Expression",Qo="Actor",Zo="Verb",Yo="Noun",Xo="LastName";var ei={a:[[/.[aeiou]na$/,Yo,"tuna"],[/.[oau][wvl]ska$/,Xo],[/.[^aeiou]ica$/,Ko,"harmonica"],[/^([hyj]a+)+$/,_o,"haha"]],c:[[/.[^aeiou]ic$/,Wo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Uo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Uo,"rammed"],[/.[aeiou][sg]hed$/,Uo,"gushed"],[/.[aeiou]red$/,Uo,"hired"],[/.[aeiou]r?ried$/,Uo,"hurried"],[/[^aeiou]ard$/,Ko,"steward"],[/[aeiou][^aeiou]id$/,Wo,""],[/.[vrl]id$/,Wo,"livid"],[/..led$/,Uo,"hurled"],[/.[iao]sed$/,Uo,""],[/[aeiou]n?[cs]ed$/,Uo,""],[/[aeiou][rl]?[mnf]ed$/,Uo,""],[/[aeiou][ns]?c?ked$/,Uo,"bunked"],[/[aeiou]gned$/,Uo],[/[aeiou][nl]?ged$/,Uo],[/.[tdbwxyz]ed$/,Uo],[/[^aeiou][aeiou][tvx]ed$/,Uo],[/.[cdflmnprstv]ied$/,Uo,"emptied"]],e:[[/.[lnr]ize$/,Jo,"antagonize"],[/.[^aeiou]ise$/,Jo,"antagonise"],[/.[aeiou]te$/,Jo,"bite"],[/.[^aeiou][ai]ble$/,Wo,"fixable"],[/.[^aeiou]eable$/,Wo,"maleable"],[/.[ts]ive$/,Wo,"festive"],[/[a-z]-like$/,Wo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wo,"cornish"],[/.v[iy]ch$/,Xo,"..ovich"],[/^ug?h+$/,_o,"ughh"],[/^uh[ -]?oh$/,_o,"uhoh"],[/[a-z]-ish$/,Wo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Xo,"polish-male"]],k:[[/^(k){2}$/,_o,"kkkk"]],l:[[/.[gl]ial$/,Wo,"familial"],[/.[^aeiou]ful$/,Wo,"fitful"],[/.[nrtumcd]al$/,Wo,"natal"],[/.[^aeiou][ei]al$/,Wo,"familial"]],m:[[/.[^aeiou]ium$/,Ko,"magnesium"],[/[^aeiou]ism$/,Ko,"schism"],[/^[hu]m+$/,_o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wo,"republican"],[/[^aeiou]ician$/,Qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,_o,"noooo"],[/^(yo)+$/,_o,"yoo"],[/^wo{2,}[pt]?$/,_o,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ko],[/[^i]fer$/,Jo],[/.[^aeiou][ao]pher$/,Qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wo],[/[aeiou].*ist$/,Wo],[/^[a-z]et$/,Zo]],s:[[/.[^aeiou]ises$/,qo],[/.[rln]ates$/,qo],[/.[^z]ens$/,Zo],[/.[lstrn]us$/,Ko],[/.[aeiou]sks$/,qo],[/.[aeiou]kes$/,qo],[/[aeiou][^aeiou]is$/,Ko],[/[a-z]'s$/,Yo],[/^yes+$/,_o]],v:[[/.[^aeiou][ai][kln]ov$/,Xo]],y:[[/.[cts]hy$/,Wo],[/.[st]ty$/,Wo],[/.[tnl]ary$/,Wo],[/.[oe]ry$/,Ko],[/[rdntkbhs]ly$/,Ro],[/.(gg|bb|zz)ly$/,Wo],[/...lly$/,Ro],[/.[gk]y$/,Wo],[/[bszmp]{2}y$/,Wo],[/.[ai]my$/,Wo],[/[ea]{2}zy$/,Wo],[/.[^aeiou]ity$/,Ko]]};const ti="Verb",ni="Noun";var ri={leftTags:[["Adjective",ni],["Possessive",ni],["Determiner",ni],["Adverb",ti],["Pronoun",ti],["Value",ni],["Ordinal",ni],["Modal",ti],["Superlative",ni],["Demonym",ni],["Honorific","Person"]],leftWords:[["i",ti],["first",ni],["it",ti],["there",ti],["not",ti],["because",ni],["if",ni],["but",ni],["who",ti],["this",ni],["his",ni],["when",ni],["you",ti],["very","Adjective"],["old",ni],["never",ti],["before",ni],["a","Singular"],["the",ni],["been",ti]],rightTags:[["Copula",ni],["PastTense",ni],["Conjunction",ni],["Modal",ni]],rightWords:[["there",ti],["me",ti],["man","Adjective"],["only",ti],["him",ti],["it",ti],["were",ni],["took",ni],["himself",ti],["went",ni],["who",ni],["jr","Person"]]},ai={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},oi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ii={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},si={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},li={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ui=/^.([0-9]+)/;var ci=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ui);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ui,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},di=/^([0-9]+)/,mi=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(di);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(di,"")]}(n[0],n[1])})};var pi=function(e={}){return(e=Object.assign({},e)).rules=mi(e.rules),e.rules=hi(e.rules),e.rev&&(e.rev=mi(e.rev),e.rev=hi(e.rev)),e.exceptions=mi(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},gi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const fi=pi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),bi=pi(si),vi=pi(oi),yi=pi(ii),wi=gi(fi),Pi=gi(bi),ki=gi(vi),Ai=gi(yi),ji=pi(ai),Ei=pi(li);var xi={fromPast:fi,fromPresent:bi,fromGerund:vi,fromParticiple:yi,toPast:wi,toPresent:Pi,toGerund:ki,toParticiple:Ai,toComparative:ji,toSuperlative:Ei,fromComparative:gi(ji),fromSuperlative:gi(Ei)},Ni=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),Ii=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Gi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ti[t].forEach(n=>e[n]=t),e),{});var Di=Ti,Ci=function(e){let t=e.substring(e.length-3);if(!0===Di.hasOwnProperty(t))return Di[t];let n=e.substring(e.length-2);return!0===Di.hasOwnProperty(n)?Di[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Oi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Bi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ci(e)),Oi.hasOwnProperty(e))c=Oi[e];else if("Participle"===n)c=ci(l,i);else if("PastTense"===n)c=ci(l,r);else if("PresentTense"===n)c=ci(l,a);else{if("Gerund"!==n)return e;c=ci(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Vi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ci(i,n),PresentTense:ci(i,r),Gerund:ci(i,a),FutureTense:"will "+e},u=ci(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},zi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const $i="ically",Fi=new Set(["analyt"+$i,"chem"+$i,"class"+$i,"clin"+$i,"crit"+$i,"ecolog"+$i,"electr"+$i,"empir"+$i,"frant"+$i,"grammat"+$i,"ident"+$i,"ideolog"+$i,"log"+$i,"mag"+$i,"mathemat"+$i,"mechan"+$i,"med"+$i,"method"+$i,"method"+$i,"mus"+$i,"phys"+$i,"phys"+$i,"polit"+$i,"pract"+$i,"rad"+$i,"satir"+$i,"statist"+$i,"techn"+$i,"technolog"+$i,"theoret"+$i,"typ"+$i,"vert"+$i,"whims"+$i]),Si=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Hi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Li={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Mi=function(e){return e.endsWith("ly")?Fi.has(e)?e.replace(/ically/,"ical"):Hi.has(e)?null:Li.hasOwnProperty(e)?Li[e]:zi(e,Si)||e:null};const Wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ji={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var qi=function(e){if(Ji.hasOwnProperty(e))return Ji[e];let t=zi(e,Wi);return t||e+"ly"};const Ki=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ui={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ri=new Set(["terrible","annoying"]),_i=function(e,t){const n=t.two.models.toSuperlative;return ci(e,n)},Qi=function(e,t){const n=t.two.models.toComparative;return ci(e,n)};var Zi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Yi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Zi.hasOwnProperty(i)&&Zi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:za,nounToSingular:Gi,verbToInfinitive:Bi,getTense:Ci,verbConjugate:Vi,adjToSuperlative:_i,adjToComparative:Qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ci(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ci(e,n)},advToAdjective:Mi,adjToAdverb:qi,adjToNoun:function(e){if(Ui.hasOwnProperty(e))return Ui[e];if(Ri.has(e))return null;let t=zi(e,Ki);return t||e+"ness"}}}},Xi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const es=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var ts=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=es(n,"Infinitive","PastTense"),Object.assign(s,l),l=es(r,"Infinitive","Verb"),Object.assign(s,l),l=es(a,"Infinitive","Gerund"),Object.assign(s,l),l=es(o,"Adjective","Superlative"),Object.assign(s,l),l=es(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let ns={two:{models:xi}};const rs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},as=function(e,t){const n={model:t,methods:Yi};let{lex:r,_multi:a}=Yi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},os=function(e,t,n){let r=Vi(e,ns);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},is=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=rs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||os(a,r,!1),"Adj|Present"===o&&(os(a,r,!0),function(e,t,n){let r=_i(e,n);t[r]=t[r]||"Superlative";let a=Qi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Bi(a,ns,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Bi(a,ns,"PastTense");r[e]||(n[e]="Infinitive")}}),t=as(n,t)};let ss={one:{_multiCache:{},lexicon:Fa},two:{irregularPlurals:ja,models:xi,suffixPatterns:Fo,prefixPatterns:Mo,endsWith:ei,neighbours:ri,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Sa,clues:jo,uncountable:{},orgWords:Ni}};ss=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=as(e.one.lexicon,e)).one.lexicon,e),e=is(e.two.switches,e),e=ts(e),e=Xi(e)}(ss);var ls=ss;const us=/^(under|over|mis|re|un|dis|semi)-?/;var cs=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(us.test(a.normal)){let e=a.normal.replace(us,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},hs=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const ds={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},ms=new Set(["formulas","koalas","israelis","menus"]),ps=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var gs=function(e){if(!e||e.length<=3)return!1;if(ms.has(e))return!0;let t=e[e.length-1];return ds.hasOwnProperty(t)?ds[t].find(t=>e.endsWith(t)):"s"===t&&!ps.find(t=>e.endsWith(t))};const fs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var bs=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(gs(e.normal)?hs(e,"Plural","3-plural-guess"):hs(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ci(e.normal);t&&hs(e,t,"3-verb-tense-guess")}}(r)};const vs=/^\p{Lu}[\p{Ll}'’]/u,ys=/[0-9]/,ws=["Date","Month","WeekDay","Unit"],Ps=/^[IVXLCDM]{2,}$/,ks=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,As={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var js=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===vs.test(o)&&!1===ys.test(o)?ws.find(e=>r.tags.has(e))?null:(bs(e,t,n),r.tags.has("Noun")||r.tags.clear(),hs(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Ps.test(o)&&ks.test(o)&&!As[r.normal]?(hs(r,"RomanNumeral","2-xvii"),!0):null};const Es=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var xs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Es(r.normal,n.two.suffixPatterns);if(null!==e)return hs(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Es(r.implicit,n.two.suffixPatterns),null!==e))return hs(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ns=/['‘’‛‵′`´]/,Is=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return hs(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ds=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Cs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ds.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Os=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Bs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Vs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Cs(a)||Cs(o))return hs(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Os(a)||Os(o))return hs(n,"Year","2-tagYear-close");if(Bs(e[t-2])||Bs(e[t+2]))return hs(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return hs(n,"Year","2-tagYear-noun")}}}return null};const zs=/^[A-Z]('s|,)?$/,$s=/^[A-Z-]+$/,Fs=/([A-Z]\.)+[A-Z]?,?$/,Ss=/[A-Z]{2,}('s|,)?$/,Hs=/([a-z]\.)+[a-z]\.?$/,Ls={I:!0,A:!0};var Ms=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===$s.test(n)||n.length>5||Ls.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Fs.test(n)&&!0!==Hs.test(n)&&!0!==zs.test(n)&&!0!==Ss.test(n))}(r,n)?(r.tags.clear(),hs(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ls.hasOwnProperty(r.text)&&zs.test(r.text)?(r.tags.clear(),hs(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(hs(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&$s.test(r.text)&&r.text.length<=6?(hs(r,"Acronym","3-titlecase-acronym"),!0):null};const Ws=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Js=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var qs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ws(e[t-1],a),l=l||Ws(e[t+1],o),l=l||Js(e[t-1],r),l=l||Js(e[t+1],i),l)return hs(s,l,"3-[neighbour]"),bs(e,t,n),e[t].confidence=.2,!0}return null};const Ks=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Us=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ks(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ks(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Rs=function(e,t,n){0===e[t].tags.size&&(hs(e[t],"Noun","3-[fallback]"),bs(e,t,n),e[t].confidence=.1)};const _s=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Qs=(e,t,n)=>0!==t||e[1]?null:n;var Zs={"Adj|Gerund":(e,t)=>_s(e,t),"Adj|Noun":(e,t)=>_s(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>_s(e,t),"Adj|Present":(e,t)=>_s(e,t),"Noun|Gerund":(e,t)=>_s(e,t),"Noun|Verb":(e,t)=>_s(e,t)||Qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>_s(e,t)||Qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>_s(e,t),"Person|Verb":(e,t)=>0!==t&&_s(e,t)};const Ys="undefined"!=typeof process&&process.env?process.env:self.env||{},Xs=/^(under|over|mis|re|un|dis|semi)-?/,el=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ys.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},tl=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ys.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r},nl={tagSwitch:cs,checkSuffix:xs,checkRegex:Gs,checkCase:js,checkPrefix:Ts,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(hs(o,"Verb","3-[prefix]"),hs(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(hs(o,"Adjective","3-[prefix]"),hs(o,"Prefix","3-[prefix]")))},checkYear:Vs},rl={checkAcronym:Ms,neighbours:qs,orgWords:Us,nounFallback:Rs,switches:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Xs.test(l)&&!o[l]&&(l=l.replace(Xs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=el(e[t+1],n.afterWords);return o=o||el(e[t-1],n.beforeWords),o=o||tl(e[t-1],n.beforeTags,a),o=o||tl(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Zs[o]&&(u=Zs[o](e,t)||u),u?(a([s],u,n,null,`3-[variable] (${o})`),bs(e,t,r)):Ys.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},al=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},sl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ll={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const yl=/'/;var wl=function(e,t){let n=e[t].normal.split(yl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Pl=/'/;var kl=function(e,t){let n=e[t].normal.split(Pl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},Al=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const jl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},El={in:!0,by:!0,for:!0};var xl=(e,t)=>{let n=e[t];if(jl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===El[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Nl=/'/,Il=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},Gl={d:(e,t)=>kl(e,t),t:(e,t)=>Al(e,t),s:(e,t,n)=>xl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):wl(e,t)},Tl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Dl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Nl.test(r[o].normal)&&([,i]=r[o].normal.split(Nl));let s=null;Gl.hasOwnProperty(i)&&(s=Gl[i](r,o,t)),s&&(s=Tl(s,e),vl(n,[a,o],s),Il(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=bl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=fl},hooks:["contractionTwo"]};const Cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ol=["i","we","they"];let Bl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Cl+" #Person",tag:"Person",reason:"randy-smith"},{match:Cl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Cl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ol,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ol,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ol,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Vl=null;var zl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vl=Vl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Vl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Bl}},hooks:["postTagger"]},$l=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Fl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=$l(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},Sl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Hl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Sl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Ll={api:function(e){e.prototype.swap=Hl}};p.plugin(ml),p.plugin(Dl),p.plugin(zl),p.plugin(Fl),p.plugin(Ll);var Ml=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Wl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Jl={this:"Noun",then:"Pivot"};var ql=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},Xl={compute:{chunks:function(e){const{document:t,world:n}=e;ql(t),Kl(t),_l(e,t,n),Zl(t),Yl(t)}},api:function(e){e.prototype.chunks=Wl,e.prototype.clauses=Ml},hooks:["chunks"]};const eu=/'s$/;var tu=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const nu=/\(/,ru=/\)/,au=function(e,t){for(;t{e[0].pre=e[0].pre.replace(nu,"");let t=e[e.length-1];t.post=t.post.replace(ru,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const iu={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},su=RegExp("("+Object.keys(iu).join("|")+")"),lu=RegExp("("+Object.values(iu).join("|")+")"),uu=function(e,t){const n=e[t].pre.match(su)[0]||"";if(!n||!iu[n])return null;const r=iu[n];for(;t{e[0].pre=e[0].pre.replace(su,"");let t=e[e.length-1];t.post=t.post.replace(lu,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const hu=/\./g;var du=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(hu,""),e.normal=e.normal.replace(hu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(hu,""),e.normal=e.normal.replace(hu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},mu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const pu=(e,t)=>"number"==typeof t?e.eq(t):e,gu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var fu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=gu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=pu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=pu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=pu(t,e),new Adjectives(t.document,t.pointer)}};const bu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},vu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let yu=[["emojis","emoji"],["atmentions","atMentions"]];var wu=function(e){vu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=bu,yu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Pu={api:function(e){wu(e),tu(e),ou(e),cu(e),fu(e),mu(e),du(e)}};const ku=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Au={case:e=>{ku(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;ku(e,e=>e.text=n(e.text,t))},whitespace:e=>{ku(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{ku(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const ju=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),Eu="unicode|punctuation|whitespace|acronyms",xu="|case|contractions|parentheses|quotations|emoji|honorifics",Nu={light:ju(Eu),medium:ju(Eu+xu),heavy:ju(Eu+xu+"|possessives|adverbs|nouns|verbs")};var Iu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Nu[e]),Object.keys(e).forEach(t=>{Au.hasOwnProperty(t)&&Au[t](this,e[t])}),this}}},Gu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Tu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Du=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Ou=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Cu(e,t),isSubordinate:Du(e),root:t}};const Bu=e=>e.text(),Vu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),zu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var $u=function(e){let t=Ou(e);return{root:Bu(t.root),number:zu(t.number),determiner:Bu(t.determiner),adjectives:Vu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Fu={tags:!0};var Su=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Fu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Fu),e};const Hu={tags:!0};var Lu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Hu).tag("Singular","toPlural"),e};const Mu=(e,t)=>"number"==typeof t?e.eq(t):e;var Wu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Mu(this,e).map(Ou)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=$u(t)),n},[])}isPlural(e){let t=this.filter(e=>Ou(e).isPlural);return Mu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Ou(e).adjectives;n.found&&(t=t.concat(n))}),Mu(t,e)}toPlural(e){return Mu(this,e).map(e=>Su(e,Ou(e)))}toSingular(e){return Mu(this,e).map(e=>{let t=Ou(e);return Lu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Gu(this);return t=Mu(t,e),new Nouns(this.document,t.pointer)}}},Ju=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},qu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Ku.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Ku.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Ku.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Ru=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Qu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Zu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Yu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Xu=function(e){if(!0===Zu.hasOwnProperty(e))return Zu[e];if("a"===e||"an"===e)return 1;const t=qu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=tc(n),r=tc(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:tc(n);let a=r.text("reduced");return ec.test(a)&&(a=a.replace(ec,""),r=r.replaceWith(a)),r=nc.hasOwnProperty(a)?nc[a]:tc(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:tc(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},ac=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const oc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],ic=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],sc=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],lc=function(e){let t=[];if(e>100)return t;for(let n=0;n=oc[n][1]&&(e-=oc[n][1],t.push(oc[n][0]));return ic[e]&&t.push(ic[e]),t};var uc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=ac(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return sc.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(lc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=ac(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},cc=function(e){return e.numerator&&e.denominator?`${uc({num:e.numerator})} out of ${uc({num:e.denominator})}`:""};const hc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var dc=e=>{let t=uc(e).split(" "),n=t[t.length-1];return hc.hasOwnProperty(n)?t[t.length-1]=hc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},mc=function(e){if(!e.numerator||!e.denominator)return"";let t=uc({num:e.numerator}),n=dc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const pc=(e,t)=>"number"==typeof t?e.eq(t):e;var gc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return pc(this,e).map(rc)}get(e){return pc(this,e).map(rc)}json(e){return pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=rc(t);return n.fraction=r,n},[])}toDecimal(e){return pc(this,e).forEach(e=>{let{decimal:t}=rc(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return pc(this,e).forEach(e=>{let t=rc(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return pc(this,e).forEach(e=>{let t=rc(e),n=mc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return pc(this,e).forEach(e=>{let t=rc(e),n=cc(t);e.replaceWith(n)}),this}toPercentage(e){return pc(this,e).forEach(e=>{let{decimal:t}=rc(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ju(this);return t=pc(t,e),new Fractions(this.document,t.pointer)}};const fc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var bc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+fc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+fc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+fc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+fc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${fc})`),r=e.has("("+fc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+fc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+fc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},vc=function(e){if("string"==typeof e)return{num:Xu(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=rc(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Xu(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},yc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=ac(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const wc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Pc={"%":"percent","°":"degrees"};var kc=function(e){let t={suffix:"",prefix:e.prefix};return wc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+wc[e.prefix],t.prefix=""),Pc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Pc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Ac=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=kc(e);return t+dc(e)+n}if("Ordinal"===t)return e.prefix+yc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=kc(e);return t+uc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ec=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return jc(this,e).map(vc)}get(e){return jc(this,e).map(vc).map(e=>e.num)}json(e){return jc(this,e).map(t=>{let n=t.toView().json(e)[0],r=vc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=vc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Ac(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=vc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Ac(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=vc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Ac(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=vc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Ac(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=vc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Ac(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>vc(t).num===e)}greaterThan(e){return this.filter(t=>vc(t).num>e)}lessThan(e){return this.filter(t=>vc(t).num{let r=vc(n).num;return r>e&&r{let n=vc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ac(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=vc(e).num);let t=this.map(t=>{let n=vc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ac(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=bc(this);return t=jc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=bc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=jc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=bc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=jc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},xc={api:function(e){gc(e),Ec(e)}};const Nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},Ic=function(e={}){return!1!==(e=Object.assign({},Nc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Gc={api:function(e){e.prototype.redact=Ic}},Tc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Dc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Cc=function(e){let t=e.clauses(),n=Dc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Oc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Bc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Vc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},zc=function(e){return e.verbs().toInfinitive(),e};const $c=(e,t)=>"number"==typeof t?e.eq(t):e;var Fc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Cc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return $c(this,e).map(e=>(Cc(e),Oc(e)))}toPresentTense(e){return $c(this,e).map(e=>(Cc(e),Bc(e)))}toFutureTense(e){return $c(this,e).map(e=>(Cc(e),e=Vc(e)))}toInfinitive(e){return $c(this,e).map(e=>(Cc(e),zc(e)))}toNegative(e){return $c(this,e).map(e=>(Cc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return $c(this,e).map(e=>(Cc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return $c(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return $c(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=$c(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Tc(this);return $c(t,e)}};Object.assign(e.prototype,t)}},Sc=function(e){return e.match("#Honorific+? #Person+")},Hc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Lc="male",Mc="female",Wc={mr:Lc,mrs:Mc,miss:Mc,madam:Mc,king:Lc,queen:Mc,duke:Lc,duchess:Mc,baron:Lc,baroness:Mc,count:Lc,countess:Mc,prince:Lc,princess:Mc,sire:Lc,dame:Mc,lady:Mc,ayatullah:Lc,congressman:Lc,congresswoman:Mc,"first lady":Mc,mx:null};var Jc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Mc;if(n.has("#MaleName"))return Lc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Wc.hasOwnProperty(e))return Wc[e];if(/^her /.test(e))return Mc;if(/^his /.test(e))return Lc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Lc;if(n&&!t)return Mc}return null};const qc=(e,t)=>"number"==typeof t?e.eq(t):e;var Kc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return qc(this,e).map(Hc)}json(e){return qc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Hc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Jc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Sc(this);return t=qc(t,e),new People(this.document,t.pointer)}},Uc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},Rc=function(e){e.prototype.places=function(t){let n=Uc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},_c=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Qc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Zc=function(e){e.prototype.topics=Qc},Yc={api:function(e){Kc(e),Rc(e),_c(e),Zc(e)}},Xc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},eh=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},th=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const nh=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},rh=function(e){return e.match("#Negative")},ah=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var oh=function(e){let t=e.clone();t.contractions().expand();const n=eh(t);return{root:n,prefix:t.match("#Prefix"),adverbs:th(t,n),auxiliary:nh(t,n),negative:rh(t),phrasal:ah(n)}};const ih={tense:"PresentTense"},sh={conditional:!0},lh={tense:"FutureTense"},uh={progressive:!0},ch={tense:"PastTense"},hh={complete:!0,progressive:!1},dh={passive:!0},mh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},ph={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[ih]],["^wanted to #Infinitive$",[ch]],["^will want to #Infinitive$",[lh]]],"gerund-phrase":[["^#PastTense #Gerund$",[ch]],["^#PresentTense #Gerund$",[ih]],["^#Infinitive #Gerund$",[ih]],["^will #Infinitive #Gerund$",[lh]],["^have #PastTense #Gerund$",[ch]],["^will have #PastTense #Gerund$",[ch]]],"simple-present":[["^#PresentTense$",[ih]],["^#Infinitive$",[ih]]],"simple-past":[["^#PastTense$",[ch]]],"simple-future":[["^will #Adverb? #Infinitive",[lh]]],"present-progressive":[["^(is|are|am) #Gerund$",[ih,uh]]],"past-progressive":[["^(was|were) #Gerund$",[ch,uh]]],"future-progressive":[["^will be #Gerund$",[lh,uh]]],"present-perfect":[["^(has|have) #PastTense$",[ch,hh]]],"past-perfect":[["^had #PastTense$",[ch,hh]],["^had #PastTense to #Infinitive",[ch,hh]]],"future-perfect":[["^will have #PastTense$",[lh,hh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[ch,uh]]],"past-perfect-progressive":[["^had been #Gerund$",[ch,uh]]],"future-perfect-progressive":[["^will have been #Gerund$",[lh,uh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[ch,dh]],["^(was|were) being (#PastTense|#Participle)",[ch,dh]],["^(had|have) been (#PastTense|#Participle)",[ch,dh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[ih,dh]],["^(is|are|am) being (#PastTense|#Participle)",[ih,dh]],["^has been (#PastTense|#Participle)",[ih,dh]]],"passive-future":[["will have been (#PastTense|#Participle)",[lh,dh,sh]],["will be being? (#PastTense|#Participle)",[lh,dh,sh]]],"present-conditional":[["would be #PastTense",[ih,sh]]],"past-conditional":[["would have been #PastTense",[ch,sh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[lh]]],"auxiliary-past":[["^did #Infinitive$",[ch,{plural:!1}]],["^used to #Infinitive$",[ch,hh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[ih,hh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[ch]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let gh=[];Object.keys(ph).map(e=>{ph[e].forEach(t=>{gh.push({name:e,match:t[0],data:mh(t[1])})})});var fh=gh,bh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),vh(r)&&(n.remove(r),r=n.last()),vh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:yh(t,e)}};const Ph=e=>e,kh=(e,t)=>{let n=wh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ah=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=wh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},jh=function(e,t){let n=wh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Eh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},xh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Eh(e)),r&&e.replace(t.root,r),e},Nh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ih=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Gh=function(e){return e&&e.isView?e.text("normal"):""},Th=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Eh(e))};var Dh=function(e){let t=oh(e);e=e.clone().toView();const n=bh(e,t);return{root:t.root.text(),preAdverbs:Ih(t.adverbs.pre),postAdverbs:Ih(t.adverbs.post),auxiliary:Gh(t.auxiliary),negative:t.negative.found,prefix:Gh(t.prefix),infinitive:Th(t.root),grammar:n}};const Ch={tags:!0};var Oh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Eh(r)),i&&e.replace(r,i,Ch).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=jh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Bh={tags:!0},Vh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=wh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Bh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Vh.simple(e,t),e=Vh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Bh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Eh(a)),n(o,e.model).Participle}},zh={infinitive:Vh.simple,"simple-present":Vh.simple,"simple-past":Ph,"simple-future":Vh.both,"present-progressive":e=>(e.replace("are","were",Bh),e.replace("(is|are|am)","was",Bh),e),"past-progressive":Ph,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Vh.hasHad,"past-perfect":Ph,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Nh(e)),e.remove("have"),e),"present-perfect-progressive":Vh.hasHad,"past-perfect-progressive":Ph,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Bh),e),"passive-past":e=>(e.replace("have","had",Bh),e),"passive-present":e=>(e.replace("(is|are)","was",Bh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Bh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Ph,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Bh),e),"auxiliary-past":Ph,"auxiliary-present":e=>(e.replace("(do|does)","did",Bh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Bh):(Vh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Ph,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Bh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Vh.simple(e,t),Nh(e),e)};var $h=function(e,t,n){return zh.hasOwnProperty(n)?((e=zh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Fh={tags:!0},Sh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Eh(a)),!1===kh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ah(e)),o&&(e=e.replace(a,o,Fh)).not("#Particle").tag("PresentTense"),e},Hh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Eh(a)),!1===kh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Fh)).not("#Particle").tag("Gerund"),e},Lh={infinitive:Sh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Sh(e,t);{let t=wh(e).subject;if(kh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Fh)}return e},"simple-past":Sh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ah(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Sh(e,t),e=e.remove("will");return e},"present-progressive":Ph,"past-progressive":(e,t)=>{let n=Ah(e);return e.replace("(were|was)",n,Fh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Sh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=wh(e).subject;return kh(e)||n.has("i")?((e=xh(e,t)).remove("had"),e):(e.replace("had","has",Fh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Ph,"past-perfect-progressive":e=>e.replace("had","has",Fh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ah(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Fh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Ph,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Ph,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Hh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=jh(e);return e.replace(t.auxiliary,n),e}return Hh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Ph,"modal-infinitive":Ph,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Eh(r)),a&&(e=e.replace(t.root,a,Fh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Sh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return kh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Fh),e.remove("will"),e}};var Mh=function(e,t,n){return Lh.hasOwnProperty(n)?((e=Lh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Wh={tags:!0},Jh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Eh(r)),o&&(e=e.replace(r,o,Wh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},qh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Wh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Kh={infinitive:Jh,"simple-present":Jh,"simple-past":Jh,"simple-future":Ph,"present-progressive":qh,"past-progressive":qh,"future-progressive":Ph,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Ph,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Ph,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Ph,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Ph,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Ph,"modal-past":Ph,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Jh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Uh=function(e,t,n){return e.has("will")||e.has("going to")?e:Kh.hasOwnProperty(n)?((e=Kh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Rh={tags:!0};var _h=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Eh(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ah(e)} ${s}`,e.replace(a,s,Rh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Qh={tags:!0},Zh=function(e,t){let n=jh(e);return e.prepend(n+" not"),e},Yh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Xh=e=>e.has("(is|was|am|are|will|were|be)"),ed={"simple-present":(e,t)=>!0===Xh(e)?Yh(e):(e=xh(e,t),e=Zh(e)),"simple-past":(e,t)=>!0===Xh(e)?Yh(e):((e=xh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Xh(e)?Yh(e):Zh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Qh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Zh(e)).replace("wants","want",Qh)};var td=function(e,t,n){if(e.has("#Negative"))return e;if(ed.hasOwnProperty(n))return e=ed[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Xh(e)?Yh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const nd=(e,t)=>"number"==typeof t?e.eq(t):e;var rd={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return nd(this,e).map(oh)}json(e,t){return nd(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Dh(t),n},[])}subjects(e){return nd(this,e).map(e=>(oh(e),wh(e).subject))}adverbs(e){return nd(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return nd(this,e).filter(e=>!0!==wh(e).plural)}isPlural(e){return nd(this,e).filter(e=>!0===wh(e).plural)}isImperative(e){return nd(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return Oh(e,t,n.form)})}toPresentTense(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return Mh(e,t,n.form)})}toPastTense(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return $h(e,t,n.form)})}toFutureTense(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return Uh(e,t,n.form)})}toGerund(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return _h(e,t,n.form)})}conjugate(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Oh(e.clone(),t,n.form).text("normal"),PastTense:$h(e.clone(),t,n.form).text("normal"),PresentTense:Mh(e.clone(),t,n.form).text("normal"),FutureTense:Uh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return td(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Xc(this);return t=nd(t,e),new Verbs(this.document,t.pointer)}}};return p.plugin(Xl),p.plugin(Pu),p.plugin(Iu),p.plugin(Wu),p.plugin(xc),p.plugin(Gc),p.plugin(Fc),p.plugin(Yc),p.plugin(rd),p},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/one/compromise-one.cjs b/builds/one/compromise-one.cjs index 1a8a66816..da01d3763 100644 --- a/builds/one/compromise-one.cjs +++ b/builds/one/compromise-one.cjs @@ -1,2 +1,2 @@ -var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}},n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map((t,e)=>[e])),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])}),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);return o.world=n,"number"==typeof t&&(t=String(t)),t?"string"==typeof t?new e(r.one.tokenize.fromString(t,n)):(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView?new e(t.document,t.ptrs):u(t)?u(t[0])?new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))):new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t)):o):o;var i};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!y(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||y(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,t=>t.toLowerCase()))}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){t.has("@hasContraction")&&t.grow("@hasContraction").contractions().expand()},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace($,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var z=C,N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const L={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var F=L;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V,D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var M={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}},R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},T,z,F,q,M,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null},nt=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ft=new Set(["st","nd","rd","th","am","pm","max"]);var pt=function(t,e){let n=t[e].text.match(ht);if(null!==n){let t=n[2].toLowerCase().trim();return ft.has(t)?null:[n[1],t]}return null};const dt=/'/,gt=/^[0-9][^-–—]*[-–—].*?[0-9]/,mt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},wt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},yt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},bt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===dt.test(r[l].normal)&&([a,c]=r[l].normal.split(dt));let u=bt(i,r[l],a,c);!u&&wt.hasOwnProperty(c)&&(u=wt[c](r,l,e)),!u&&yt.hasOwnProperty(a)&&(u=yt[a](r,l)),u?(u=vt(u,t),K(n,[s,l],u),mt(n[s],t,l,u.length)):gt.test(r[l].normal)?(u=ut(r,l),u&&(u=vt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),mt(n[s],t,l,u.length))):(u=pt(r,l),u&&(u=vt(u,t),K(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}})}},hooks:["contractions"]},jt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Et.test(a)){let t=a.replace(Et,"");if(s.hasOwnProperty(t)&&t.length>3&&Ot.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Pt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]},_t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const St=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const $t=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var Ct=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=$t(t.goNext,void 0),t.failTo=$t(t.failTo,0),t.endAs=$t(t.endAs,null),t},zt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:_t(t,this.world));var r;let o=Tt(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=_t(t,this.world());return Ct(e)}}};const Nt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Lt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Nt(n,e),Object.keys(r).forEach(t=>{r[t]=Nt(r[t],e)}),{ptrs:n,byGroup:r}},Ft=t=>"[object Object]"===Object.prototype.toString.call(t),Vt=t=>t&&Ft(t)&&!0===t.isView,qt=t=>t&&Ft(t)&&!0===t.isNet,Dt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Gt={matchOne:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t).eq(0);if(qt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t);if(qt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Dt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Vt(t))return t.fullPointer.length>0;if(qt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.filter(e=>e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Vt(t))return this.filter(e=>!e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Dt(t,n,this.world);let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}},Bt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Ut=function(t,e){return[t[0],t[1],e[2]]},Mt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Wt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},It={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Ut(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(Ut(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)}};It.split=It.splitAfter;var Rt=It;const Qt=Object.assign({},Gt,Bt,Rt);Qt.lookBehind=Qt.before,Qt.lookBefore=Qt.before,Qt.lookAhead=Qt.after,Qt.lookAfter=Qt.after,Qt.notIf=Qt.ifNo;var Ht=function(t){Object.assign(t.prototype,Qt)};const Zt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Kt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Jt=/ /g,Xt=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Yt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var te=function(t){let e=t.split(Zt),n=[];e.forEach(t=>{Xt(t)?n.push(t):n=n.concat(t.split(Kt))}),n=Yt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Xt(t)?r.push(t):r=r.concat(t.split(Jt))}),r=Yt(r),r};const ee=/\{([0-9]+)?(, *[0-9]*)?\}/,ne=/&&/,re=new RegExp(/^<\s*(\S+)\s*>/),oe=t=>t.charAt(0).toUpperCase()+t.substring(1),ie=t=>t.charAt(t.length-1),se=t=>t.charAt(0),le=t=>t.substring(1),ae=t=>t.substring(0,t.length-1),ce=function(t){return t=le(t),t=ae(t)},ue=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ie(t)&&(n.end=!0,t=ae(t)),"^"===se(t)&&(n.start=!0,t=le(t)),("["===se(t)||"]"===ie(t))&&(n.group=null,"["===se(t)&&(n.groupStart=!0),"]"===ie(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===se(t))){const e=re.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ie(t)&&(n.greedy=!0,t=ae(t)),"*"!==t&&"*"===ie(t)&&"\\*"!==t&&(n.greedy=!0,t=ae(t)),"?"===ie(t)&&(n.optional=!0,t=ae(t)),"!"===se(t)&&(n.negative=!0,t=le(t)),"~"===se(t)&&"~"===ie(t)&&t.length>2&&(t=ce(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===se(t)&&")"===ie(t)){ne.test(t)?(n.choices=t.split(ne),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=le(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ae(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>ue(t,e))),t=""}if("/"===se(t)&&"/"===ie(t))return t=ce(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===se(t)&&"}"===ie(t)){if(t=ce(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===se(t)&&">"===ie(t))return t=ce(t),n.chunk=oe(t),n.greedy=!0,n;if("%"===se(t)&&"%"===ie(t))return t=ce(t),n.switch=t,n}return!0===ee.test(t)&&(t=t.replace(ee,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===se(t)?(n.tag=le(t),n.tag=oe(n.tag),n):"@"===se(t)?(n.method=le(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var he=ue;const fe=/[a-z0-9][-–—][a-z]/i;var pe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&fe.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t},de=function(t,e){return e.methods.two&&e.methods.two.transform&&(t=t.map(t=>{if(t.root){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform,r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter(t=>t)}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return r.push(n(t.root,e.model)),r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i}(t,e))),n=n.filter(t=>t),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}return t})),t},ge=function(t){return t=function(t){return t.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=(t=function(t){let e=0,n=null;for(let r=0;r{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))},me=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=te(t);return r=r.map(t=>he(t,e)),r=pe(r,n),r=de(r,n),r=ge(r),r};const we=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ye=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ke=(t,e)=>-1!==t.pre.indexOf(e),Pe={hasQuote:t=>ve.test(t.pre)||xe.test(t.post),hasComma:t=>Oe(t,","),hasPeriod:t=>!0===Oe(t,".")&&!1===Oe(t,"..."),hasExclamation:t=>Oe(t,"!"),hasQuestionMark:t=>Oe(t,"?")||Oe(t,"¿"),hasEllipses:t=>Oe(t,"..")||Oe(t,"…")||ke(t,"..")||ke(t,"…"),hasSemicolon:t=>Oe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>je.test(t.post)||je.test(t.pre),hasDash:t=>Ee.test(t.post)||Ee.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};Pe.hasQuotation=Pe.hasQuote;var _e=Pe;let Se=function(){};Se=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(be(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof _e[e.method]&&!0===_e[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Se(t,e,n,r)):e.choices.some(e=>Se(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Ae=Se;const Te=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&($e(t,t.t).length=r-t.t),t.t=r,!0)};const ze=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Ae(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Ae(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&($e(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Fe=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Ae(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null},Ve=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Ae(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Ae(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},qe=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},De=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Ge=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Ve(t),r.implicit&&t.terms[t.t+1]&&De(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||qe(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=$e(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Be=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator){if(!0!==t.anything){if(!0!==Te(t,o)){if(!0!==Ae(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative&&!Fe(o))return null;if(!0!==t.optional)return null}else if(!Ge(o))return null}else if(!Ge(o))return null}else if(!Ge(o))return null}else if(!Le(o))return null}else if(!Ne(o))return null}else if(!Ce(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}},Ue=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const Me=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},We=function(t,e,n){let r=Be(t,e,0,t.length);return r?(r=Me(r,n),r):null};var Ie={api:Ht,methods:{one:{termMethods:_e,parseMatch:me,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=We(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ue(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Re=/^\../,Qe=/^#./,He=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Re.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var Ze={html:function(t){let{starts:e,ends:n}=He(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Je,""),Ye.test(o)&&(o=" "),o=o.replace(Xe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Je,""),o="-"===o?" ":o.replace(Ke,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&tn.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let on=[],sn=0;for(;sn<64;)on[sn]=0|4294967296*Math.sin(++sn%Math.PI);function ln(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(sn=s=0;sn>4]+on[s]+~~i[sn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const an={text:!0,terms:!0};let cn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(t,e){return Object.assign({},t,e)},hn={text:t=>en(t,{keepPunct:!0},!1),normal:t=>en(t,un(rn.normal,{keepPunct:!0}),!1),implicit:t=>en(t,un(rn.implicit,{keepPunct:!0}),!1),machine:t=>en(t,cn,!1),root:t=>en(t,un(cn,{form:"root"}),!1),hash:t=>ln(en(t,{keepPunct:!0},!1)),offset:t=>{let e=hn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const fn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},an,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&hn[i]&&(o[i]=hn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};fn.data=fn.json;var pn=fn,dn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};const gn="";var mn={green:t=>""+t+gn,red:t=>""+t+gn,blue:t=>""+t+gn,magenta:t=>""+t+gn,cyan:t=>""+t+gn,yellow:t=>""+t+gn,black:t=>""+t+gn,dim:t=>""+t+gn,i:t=>""+t+gn},wn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(mn.blue("\n ──────")),e.forEach(t=>{console.log(mn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=mn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=mn.blue(" │ ")+mn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return mn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},yn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(mn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(mn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(mn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(mn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},bn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${mn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const vn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var xn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t);if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}},En={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&rn.hasOwnProperty(t)?e=Object.assign({},rn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},_n=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var Sn=function(t,e){let n=_n(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r},An={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:_n,splitAll:Sn}}},Tn=function(t,e){let n=t.concat(e),r=_n(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>Pn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n},Cn=function(t,e){let n=_n(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>Pn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Nn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Ln={union:function(t){t=zn(t,this);let e=Tn(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)}};Ln.and=Ln.union,Ln.intersection=function(t){t=zn(t,this);let e=Cn(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.not=function(t){t=zn(t,this);let e=$n(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.difference=Ln.not,Ln.complement=function(){let t=this.all(),e=$n(t.fullPointer,this.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=Tn(t,[e])}),t=Nn(t,this.document),this.update(t)};var Fn={methods:An,api:function(t){Object.assign(t.prototype,Ln)}};const Vn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var qn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Vn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Vn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Vn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t},Dn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})},Gn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Bn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o},Un=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=qn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Dn(o,e.hooks);return i=Gn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Bn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Un(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(a,t.unTag,n,t.safe,o),t.chunk&&a.forEach(e=>e.chunk=t.chunk)}))}}}};const Wn=/ /,In=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Rn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Wn.test(e))!function(t,e,n,r){let o=e.split(Wn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Rn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nQn(t,e,n,r))};var Hn=Qn,Zn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Kn({id:t})),e}return[Kn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},tr=t=>"[object Array]"===Object.prototype.toString.call(t),er=t=>(t=t||"").trim(),nr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Jn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Xn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Kn({});return t.forEach(t=>{if((t=Kn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Yn(e=t).forEach(Kn),e);var e},rr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Yn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},or=function(t){let e=Yn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},ir={text:rr,txt:rr,array:or,flat:or},sr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(rr(t,!0)),null):ir.hasOwnProperty(e)?ir[e](t):t},lr=t=>{Yn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},ar=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=er(t),!ar.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Kn({});return new g(e)}add(t,e={}){if(tr(t))return t.forEach(t=>this.add(er(t),e)),this;t=er(t);let n=Kn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=er(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Yn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Yn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var t;return t=this.json,Yn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else tr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){lr(this.json);let t=Yn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return lr(this.json),sr(this.json,t)}debug(){return lr(this.json),sr(this.json,"debug"),this}}const cr=function(t){let e=nr(t);return new g(e)};cr.prototype.plugin=function(t){t(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const hr=function(t){if(ur.hasOwnProperty(t.id))return ur[t.id];if(ur.hasOwnProperty(t.is))return ur[t.is];let e=t._cache.parents.find(t=>ur[t]);return ur[e]};var fr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:hr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const pr=function(t){return t?"string"==typeof t?[t]:t:[]};var dr=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=pr(t[e].children),t[e].not=pr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},gr={one:{setTag:Hn,unTag:Zn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=dr(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return cr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return fr(n)}}};const mr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var wr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),mr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return mr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}},yr=function(t){Object.assign(t.prototype,wr)},br={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const vr=new Set(["Auxiliary","Possessive"]);var xr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(vr.has(t)||!e.hasOwnProperty(n))return 1;if(vr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:gr,api:yr,lib:br};const jr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Er=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Or=function(t){let e=[],n=t.split(Er);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Ur=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Ir=/^[a-z]\.([a-z]\.)+/i,Rr=/^[-+.][0-9]/,Qr=/^'[0-9]{2}/;var Hr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Ur,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Rr.test(t)?"'"===n&&Qr.test(t)?(n="",e):"":(n="",e)))).replace(Mr,o=>(r=o,Wr.test(o)&&/[sn]['’]$/.test(e)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Ir.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Zr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Kr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Xr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var to=function(t){return function(t){return!0===Kr.test(t)||!0===Yr.test(t)||!0===Jr.test(t)||!0===Xr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},eo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Zr(r),r=n(r,e),r=to(r),t.normal=r},no={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:Cr,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Gr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Vr(n),n=Lr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Hr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{eo(t,e)}),n})}}}},ro={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let oo={},io={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{oo[e]=!0,io[e]="Abbreviation",void 0!==t[1]&&(io[e]=[io[e],t[1]])})});var so=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let lo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ao={};Object.keys(lo).forEach((function(t){lo[t].split("").forEach((function(e){ao[e]=t}))}));const co=/\//,uo=/[a-z]\.[a-z]/i,ho=/[0-9]/;var fo=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),co.test(n)&&!uo.test(n)&&!ho.test(n)){let e=n.split(co);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const po=/^\p{Letter}+-\p{Letter}+$/u;var go=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),po.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},mo=function(t){let e=0,n=0,r=t.document;for(let t=0;two(t,fo),machine:t=>wo(t,go),normal:t=>wo(t,eo),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const xo={safe:!0,min:3};var jo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},xo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=vo(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}},Eo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=bo},lib:jo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};return d.extend(H),d.extend(kn),d.extend(Ie),d.extend(Fn),d.extend(xr),d.plugin(xt),d.extend(yo),d.plugin(w),d.extend(zt),d.extend(Eo),d.extend(Pt),d.extend(Mn),d},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); +var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}},n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map((t,e)=>[e])),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])}),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var a=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(c(n))for(const r in n)c(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);return o.world=n,"number"==typeof t&&(t=String(t)),t?"string"==typeof t?new e(r.one.tokenize.fromString(t,n)):(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView?new e(t.document,t.ptrs):u(t)?u(t[0])?new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))):new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t)):o):o;var i};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return a(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.4.0";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),y=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},v=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?v(n):(v(n),v([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||b(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,t=>t.toLowerCase()))}(t,i,n),y(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1,E=E>46655?0:E,e=e>46655?0:e,n=n>1294?0:n;let r=O(E.toString(36));r+=O(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const P=function(t){t.has("@hasContraction")&&t.grow("@hasContraction").contractions().expand()},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach((l,c)=>{let a=l.fullPointer[0],[u]=a,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([a]).firstTerm()),j(h,a,f,r)):(P(e.update([a]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace($,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var z=C,N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const L={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var F=L;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V,D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var M={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return y(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}},R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},T,z,F,q,M,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null},nt=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,ct=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,at=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||at.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ct),null!==r?[r[1],"to",r[4]]:null)};const ht=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ft=new Set(["st","nd","rd","th","am","pm","max"]);var pt=function(t,e){let n=t[e].text.match(ht);if(null!==n){let t=n[2].toLowerCase().trim();return ft.has(t)?null:[n[1],t]}return null};const dt=/'/,mt=/^[0-9][^-–—]*[-–—].*?[0-9]/,gt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},wt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},bt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},yt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let c=null,a=null;!0===dt.test(r[l].normal)&&([c,a]=r[l].normal.split(dt));let u=yt(i,r[l],c,a);!u&&wt.hasOwnProperty(a)&&(u=wt[a](r,l,e)),!u&&bt.hasOwnProperty(c)&&(u=bt[c](r,l)),u?(u=vt(u,t),K(n,[s,l],u),gt(n[s],t,l,u.length)):mt.test(r[l].normal)?(u=ut(r,l),u&&(u=vt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),gt(n[s],t,l,u.length))):(u=pt(r,l),u&&(u=vt(u,t),K(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}})}},hooks:["contractions"]},jt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let c=t[e],a=c.machine||c.normal;return void 0!==t[e+1]&&!0===s[a]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Et.test(c)){let t=c.replace(Et,"");if(s.hasOwnProperty(t)&&t.length>3&&Ot.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},Pt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]},_t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(c);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][c];o[a]=t,r[t]&&(r[a]=r[a]||[],r[a]=r[a].concat(r[t]))}else o[a]=0}}return{goNext:n,endAs:r,failTo:o}};const St=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(c))}return t.update(r)};const $t=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var Ct=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=$t(t.goNext,void 0),t.failTo=$t(t.failTo,0),t.endAs=$t(t.endAs,null),t};const zt={buildTrie:function(t){const e=_t(t,this.world());return Ct(e)}};zt.compile=zt.buildTrie;var Nt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:_t(t,this.world));var r;let o=Tt(this,n,e);return o=o.settle(),o}},lib:zt};const Lt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ft=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Lt(n,e),Object.keys(r).forEach(t=>{r[t]=Lt(r[t],e)}),{ptrs:n,byGroup:r}},Vt=t=>"[object Object]"===Object.prototype.toString.call(t),qt=t=>t&&Vt(t)&&!0===t.isView,Dt=t=>t&&Vt(t)&&!0===t.isNet,Gt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Bt={matchOne:function(t,e,n){const r=this.methods.one;if(qt(t))return this.intersection(t).eq(0);if(Dt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ft(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},match:function(t,e,n){const r=this.methods.one;if(qt(t))return this.intersection(t);if(Dt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Gt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ft(i,this.fullPointer),c=this.toView(s);return c._groups=l,c},has:function(t,e,n){const r=this.methods.one;if(qt(t))return t.fullPointer.length>0;if(Dt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(qt(t))return this.filter(e=>e.intersection(t).found);if(Dt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(qt(t))return this.filter(e=>!e.intersection(t).found);if(Dt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Gt(t,n,this.world);let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}},Ut={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Mt=function(t,e){return[t[0],t[1],e[2]]},Wt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},It=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Rt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Wt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>It(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Wt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Mt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>It(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Wt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(Mt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>It(t,this)),this.update(i)}};Rt.split=Rt.splitAfter;var Qt=Rt;const Ht=Object.assign({},Bt,Ut,Qt);Ht.lookBehind=Ht.before,Ht.lookBefore=Ht.before,Ht.lookAhead=Ht.after,Ht.lookAfter=Ht.after,Ht.notIf=Ht.ifNo;var Zt=function(t){Object.assign(t.prototype,Ht)};const Kt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Jt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Xt=/ /g,Yt=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),te=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var ee=function(t){let e=t.split(Kt),n=[];e.forEach(t=>{Yt(t)?n.push(t):n=n.concat(t.split(Jt))}),n=te(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Yt(t)?r.push(t):r=r.concat(t.split(Xt))}),r=te(r),r};const ne=/\{([0-9]+)?(, *[0-9]*)?\}/,re=/&&/,oe=new RegExp(/^<\s*(\S+)\s*>/),ie=t=>t.charAt(0).toUpperCase()+t.substring(1),se=t=>t.charAt(t.length-1),le=t=>t.charAt(0),ce=t=>t.substring(1),ae=t=>t.substring(0,t.length-1),ue=function(t){return t=ce(t),t=ae(t)},he=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===se(t)&&(n.end=!0,t=ae(t)),"^"===le(t)&&(n.start=!0,t=ce(t)),("["===le(t)||"]"===se(t))&&(n.group=null,"["===le(t)&&(n.groupStart=!0),"]"===se(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===le(t))){const e=oe.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===se(t)&&(n.greedy=!0,t=ae(t)),"*"!==t&&"*"===se(t)&&"\\*"!==t&&(n.greedy=!0,t=ae(t)),"?"===se(t)&&(n.optional=!0,t=ae(t)),"!"===le(t)&&(n.negative=!0,t=ce(t)),"~"===le(t)&&"~"===se(t)&&t.length>2&&(t=ue(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===le(t)&&")"===se(t)){re.test(t)?(n.choices=t.split(re),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ce(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ae(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>he(t,e))),t=""}if("/"===le(t)&&"/"===se(t))return t=ue(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===le(t)&&"}"===se(t)){if(t=ue(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===le(t)&&">"===se(t))return t=ue(t),n.chunk=ie(t),n.greedy=!0,n;if("%"===le(t)&&"%"===se(t))return t=ue(t),n.switch=t,n}return!0===ne.test(t)&&(t=t.replace(ne,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===le(t)?(n.tag=ce(t),n.tag=ie(n.tag),n):"@"===le(t)?(n.method=ce(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var fe=he;const pe=/[a-z0-9][-–—][a-z]/i;var de=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&pe.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t},me=function(t,e){return e.methods.two&&e.methods.two.transform&&(t=t.map(t=>{if(t.root){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform,r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter(t=>t)}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return r.push(n(t.root,e.model)),r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i}(t,e))),n=n.filter(t=>t),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}return t})),t},ge=function(t){return t=function(t){return t.map(t=>(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=(t=function(t){let e=0,n=null;for(let r=0;r{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))},we=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=ee(t);return r=r.map(t=>fe(t,e)),r=de(r,n),r=me(r,n),r=ge(r),r};const be=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ye=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,c,a,u,h=[];for(let t=0;t4)return n;l=e[i-1],c=s===l?0:1,a=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+c)-1!==t.post.indexOf(e),Pe=(t,e)=>-1!==t.pre.indexOf(e),_e={hasQuote:t=>xe.test(t.pre)||je.test(t.post),hasComma:t=>ke(t,","),hasPeriod:t=>!0===ke(t,".")&&!1===ke(t,"..."),hasExclamation:t=>ke(t,"!"),hasQuestionMark:t=>ke(t,"?")||ke(t,"¿"),hasEllipses:t=>ke(t,"..")||ke(t,"…")||Pe(t,"..")||Pe(t,"…"),hasSemicolon:t=>ke(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ee.test(t.post)||Ee.test(t.pre),hasDash:t=>Oe.test(t.post)||Oe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};_e.hasQuotation=_e.hasQuote;var Se=_e;let Ae=function(){};Ae=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ve(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Se[e.method]&&!0===Se[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ae(t,e,n,r)):e.choices.some(e=>Ae(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Te=Ae;const $e=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Ce(t,t.t).length=r-t.t),t.t=r,!0)};const Ne=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Te(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Te(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Ce(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Ve=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Te(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null},qe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Te(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Te(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},De=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},Ge=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Be=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&qe(t),r.implicit&&t.terms[t.t+1]&&Ge(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||De(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ce(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Ue=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator){if(!0!==t.anything){if(!0!==$e(t,o)){if(!0!==Te(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative&&!Ve(o))return null;if(!0!==t.optional)return null}else if(!Be(o))return null}else if(!Be(o))return null}else if(!Be(o))return null}else if(!Fe(o))return null}else if(!Le(o))return null}else if(!ze(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}},Me=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const We=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},Ie=function(t,e,n){let r=Ue(t,e,0,t.length);return r?(r=We(r,n),r):null};var Re={api:Zt,methods:{one:{termMethods:Se,parseMatch:we,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=Ie(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Me(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Qe=/^\../,He=/^#./,Ze=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Qe.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var Ke={html:function(t){let{starts:e,ends:n}=Ze(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Xe,""),tn.test(o)&&(o=" "),o=o.replace(Ye,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Xe,""),o="-"===o?" ":o.replace(Je,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&en.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},rn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};rn.clean=rn.normal,rn.reduced=rn.root;var on=rn;let sn=[],ln=0;for(;ln<64;)sn[ln]=0|4294967296*Math.sin(++ln%Math.PI);function cn(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(ln=s=0;ln>4]+sn[s]+~~i[ln|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const an={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const hn=function(t,e){return Object.assign({},t,e)},fn={text:t=>nn(t,{keepPunct:!0},!1),normal:t=>nn(t,hn(on.normal,{keepPunct:!0}),!1),implicit:t=>nn(t,hn(on.implicit,{keepPunct:!0}),!1),machine:t=>nn(t,un,!1),root:t=>nn(t,hn(un,{form:"root"}),!1),hash:t=>cn(nn(t,{keepPunct:!0},!1)),offset:t=>{let e=fn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};fn.sentences=fn.sentence,fn.clean=fn.normal,fn.reduced=fn.root;const pn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},an,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&fn[i]&&(o[i]=fn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};pn.data=pn.json;var dn=pn,mn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};const gn="";var wn={green:t=>""+t+gn,red:t=>""+t+gn,blue:t=>""+t+gn,magenta:t=>""+t+gn,cyan:t=>""+t+gn,yellow:t=>""+t+gn,black:t=>""+t+gn,dim:t=>""+t+gn,i:t=>""+t+gn},bn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(wn.blue("\n ──────")),e.forEach(t=>{console.log(wn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=wn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=wn.blue(" │ ")+wn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return wn[n](t)})),t.join(", ")}(e,n);console.log(i)})})},yn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(wn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(wn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(wn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(wn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})},vn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${wn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const xn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var jn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t);if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}},On={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&on.hasOwnProperty(t)?e=Object.assign({},on[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Sn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var An=function(t,e){let n=Sn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r},Tn={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,c,a]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!c||u[s]&&u[s].id===c)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(c,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(a&&u[u.length-1].id!==a&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:Sn,splitAll:An}}},$n=function(t,e){let n=t.concat(e),r=Sn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>_n(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n},zn=function(t,e){let n=Sn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>_n(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Ln=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Fn={union:function(t){t=Nn(t,this);let e=$n(this.fullPointer,t.fullPointer);return e=Ln(e,this.document),this.toView(e)}};Fn.and=Fn.union,Fn.intersection=function(t){t=Nn(t,this);let e=zn(this.fullPointer,t.fullPointer);return e=Ln(e,this.document),this.toView(e)},Fn.not=function(t){t=Nn(t,this);let e=Cn(this.fullPointer,t.fullPointer);return e=Ln(e,this.document),this.toView(e)},Fn.difference=Fn.not,Fn.complement=function(){let t=this.all(),e=Cn(t.fullPointer,this.fullPointer);return e=Ln(e,this.document),this.toView(e)},Fn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=$n(t,[e])}),t=Ln(t,this.document),this.update(t)};var Vn={methods:Tn,api:function(t){Object.assign(t.prototype,Fn)}};const qn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Dn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(qn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(qn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=qn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t},Gn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})},Bn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>0===t.wants.length||t.wants.filter(t=>r.has(t)).length>=t.minWant)})},Un=function(t,e,n,r){let o=[];for(let i=0;i0&&(c.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o},Mn=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=Dn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Gn(o,e.hooks);return i=Bn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Un(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;return 0===t.length?t:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Mn(c,t.tag,r))return;if("-"===c[c.length-1].post)return}void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),1===c.length&&"Noun"===t.tag&&c[0].text&&null!==c[0].text.match(/..s$/)&&s(c,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach(e=>e.chunk=t.chunk)}))}}}};const In=/ /,Rn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Qn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),In.test(e))!function(t,e,n,r){let o=e.split(In);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Qn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nHn(t,e,n,r))};var Zn=Hn,Kn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Jn({id:t})),e}return[Jn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},er=t=>"[object Array]"===Object.prototype.toString.call(t),nr=t=>(t=t||"").trim(),rr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Xn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Yn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Jn({});return t.forEach(t=>{if((t=Jn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(tr(e=t).forEach(Jn),e);var e},or=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return tr(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},ir=function(t){let e=tr(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},sr={text:or,txt:or,array:ir,flat:ir},lr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(or(t,!0)),null):sr.hasOwnProperty(e)?sr[e](t):t},cr=t=>{tr(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},ar=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=nr(t),!ar.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Jn({});return new g(e)}add(t,e={}){if(er(t))return t.forEach(t=>this.add(nr(t),e)),this;t=nr(t);let n=Jn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=nr(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return tr(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=tr(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return tr(this.json)}fillDown(){var t;return t=this.json,tr(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else er(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){cr(this.json);let t=tr(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return cr(this.json),lr(this.json,t)}debug(){return cr(this.json),lr(this.json,"debug"),this}}const ur=function(t){let e=rr(t);return new g(e)};ur.prototype.plugin=function(t){t(this)};var hr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const fr=function(t){if(hr.hasOwnProperty(t.id))return hr[t.id];if(hr.hasOwnProperty(t.is))return hr[t.is];let e=t._cache.parents.find(t=>hr[t]);return hr[e]};var pr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:fr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const dr=function(t){return t?"string"==typeof t?[t]:t:[]};var mr=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=dr(t[e].children),t[e].not=dr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t},gr={one:{setTag:Zn,unTag:Kn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=mr(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return ur(e).cache().fillDown().out("array")}(Object.assign({},e,t));return pr(n)}}};const wr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var br={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),wr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return wr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}},yr=function(t){Object.assign(t.prototype,br)},vr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const xr=new Set(["Auxiliary","Possessive"]);var jr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(xr.has(t)||!e.hasOwnProperty(n))return 1;if(xr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:gr,api:yr,lib:vr};const Er=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Or=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var kr=function(t){let e=[],n=t.split(Or);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const Tr=/\S/,$r=/^\s+/;var Cr=function(t,e){if(t=t||"",!(t=String(t))||"string"!=typeof t||!1===Tr.test(t))return[];t=t.replace(" "," ");let n=kr(t),r=Sr(n),o=Ar(r,e);if(0===o.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Ur=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Ir=/^[a-z]\.([a-z]\.)+/i,Rr=/^[-+.][0-9]/,Qr=/^'[0-9]{2}/;var Hr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Ur,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Rr.test(t)?"'"===n&&Qr.test(t)?(n="",e):"":(n="",e)))).replace(Mr,o=>(r=o,Wr.test(o)&&/[sn]['’]$/.test(e)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Ir.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}},Zr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Kr=/([A-Z]\.)+[A-Z]?,?$/,Jr=/^[A-Z]\.,?$/,Xr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var to=function(t){return function(t){return!0===Kr.test(t)||!0===Yr.test(t)||!0===Jr.test(t)||!0===Xr.test(t)}(t)&&(t=t.replace(/\./g,"")),t},eo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Zr(r),r=n(r,e),r=to(r),t.normal=r};const no=/[ .][A-Z]\.? *$/i,ro=/(?:\u2026|\.{2,}) *$/,oo=/\p{L}/u;var io={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:Cr,isSentence:function(t,e){if(!1===oo.test(t))return!1;if(!0===no.test(t))return!1;if(!0===ro.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Gr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Vr(n),n=Lr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Hr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{eo(t,e)}),n})}}}},so={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let lo={},co={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{lo[e]=!0,co[e]="Abbreviation",void 0!==t[1]&&(co[e]=[co[e],t[1]])})});var ao=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let uo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ho={};Object.keys(uo).forEach((function(t){uo[t].split("").forEach((function(e){ho[e]=t}))}));const fo=/\//,po=/[a-z]\.[a-z]/i,mo=/[0-9]/;var go=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),fo.test(n)&&!po.test(n)&&!mo.test(n)){let e=n.split(fo);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const wo=/^\p{Letter}+-\p{Letter}+$/u;var bo=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),wo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},yo=function(t){let e=0,n=0,r=t.document;for(let t=0;tvo(t,go),machine:t=>vo(t,bo),normal:t=>vo(t,eo),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const Oo={safe:!0,min:3};var ko={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},Oo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=Eo(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}},Po={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=jo},lib:ko,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};return d.extend(H),d.extend(Pn),d.extend(Re),d.extend(Vn),d.extend(jr),d.plugin(xt),d.extend(xo),d.plugin(w),d.extend(Nt),d.extend(Po),d.extend(Pt),d.extend(Wn),d},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); diff --git a/builds/one/compromise-one.mjs b/builds/one/compromise-one.mjs index c03b962f7..0a5c23d9e 100644 --- a/builds/one/compromise-one.mjs +++ b/builds/one/compromise-one.mjs @@ -1,2 +1,2 @@ -var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map((t,e)=>[e])),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])}),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(u(t)){if(u(t[0])){return new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set}))))}return new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t))}return o};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.3.1";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),y=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},b=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?b(n):(b(n),b([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||v(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,t=>t.toLowerCase())));var i}(t,i,n),y(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1;var r=E;r=parseInt(r,10),e=e>46655?46655:e,n=n>1294?1294:n;let o=O((r=r>46655?46655:r).toString(36));o+=O(e.toString(36));let i=n.toString(36);return i=i.length<2?"0"+i:i,o+=i,o+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+o.toUpperCase()};const P=function(t){if(t.has("@hasContraction")){t.grow("@hasContraction").contractions().expand()}},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace($,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},C.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var z=C;var N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const L={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var F=L;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V;var D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var M={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return y(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}};var R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},T,z,F,q,M,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null};var nt=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ft=new Set(["st","nd","rd","th","am","pm","max"]);var pt=function(t,e){let n=t[e].text.match(ht);if(null!==n){let t=n[2].toLowerCase().trim();return ft.has(t)?null:[n[1],t]}return null};const dt=/'/,mt=/^[0-9][^-–—]*[-–—].*?[0-9]/,gt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]],o.compute("lexicon"),o.world.compute.preTagger&&o.compute("preTagger")},wt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},vt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},yt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===dt.test(r[l].normal)&&([a,c]=r[l].normal.split(dt));let u=yt(i,r[l],a,c);!u&&wt.hasOwnProperty(c)&&(u=wt[c](r,l,e)),!u&&vt.hasOwnProperty(a)&&(u=vt[a](r,l)),u?(u=bt(u,t),K(n,[s,l],u),gt(n[s],t,l,u.length)):mt.test(r[l].normal)?(u=ut(r,l),u&&(u=bt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),gt(n[s],t,l,u.length))):(u=pt(r,l),u&&(u=bt(u,t),K(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}})}},hooks:["contractions"]};var jt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===Et.test(a)){let t=a.replace(Et,"");if(s.hasOwnProperty(t)&&t.length>3&&Ot.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Pt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=r.toLowerCase().trim()).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]};var _t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const St=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const $t=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var Ct=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=$t(t.goNext,void 0),t.failTo=$t(t.failTo,0),t.endAs=$t(t.endAs,null),t};var zt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:_t(t,this.world));var r;let o=Tt(this,n,e);return o=o.settle(),o}},lib:{compile:function(t){const e=_t(t,this.world());return Ct(e)}}};const Nt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Lt=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Nt(n,e),Object.keys(r).forEach(t=>{r[t]=Nt(r[t],e)}),{ptrs:n,byGroup:r}},Ft=t=>"[object Object]"===Object.prototype.toString.call(t),Vt=t=>t&&Ft(t)&&!0===t.isView,qt=t=>t&&Ft(t)&&!0===t.isNet,Dt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Gt={matchOne:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t).eq(0);if(qt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.intersection(t);if(qt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Dt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Lt(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Vt(t)){return t.fullPointer.length>0}if(qt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Vt(t))return this.filter(e=>e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Dt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Vt(t))return this.filter(e=>!e.intersection(t).found);if(qt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Dt(t,n,this.world);let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}};var Bt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Ut=function(t,e){return[t[0],t[1],e[2]]},Mt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},Wt=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},It={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Ut(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Mt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(Ut(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>Wt(t,this)),this.update(i)}};It.split=It.splitAfter;var Rt=It;const Qt=Object.assign({},Gt,Bt,Rt);Qt.lookBehind=Qt.before,Qt.lookBefore=Qt.before,Qt.lookAhead=Qt.after,Qt.lookAfter=Qt.after,Qt.notIf=Qt.ifNo;var Ht=function(t){Object.assign(t.prototype,Qt)};const Zt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Kt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Jt=/ /g,Xt=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),Yt=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var te=function(t){let e=t.split(Zt),n=[];e.forEach(t=>{Xt(t)?n.push(t):n=n.concat(t.split(Kt))}),n=Yt(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Xt(t)?r.push(t):r=r.concat(t.split(Jt))}),r=Yt(r),r};const ee=/\{([0-9]+)?(, *[0-9]*)?\}/,ne=/&&/,re=new RegExp(/^<\s*(\S+)\s*>/),oe=t=>t.charAt(0).toUpperCase()+t.substring(1),ie=t=>t.charAt(t.length-1),se=t=>t.charAt(0),le=t=>t.substring(1),ae=t=>t.substring(0,t.length-1),ce=function(t){return t=le(t),t=ae(t)},ue=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ie(t)&&(n.end=!0,t=ae(t)),"^"===se(t)&&(n.start=!0,t=le(t)),("["===se(t)||"]"===ie(t))&&(n.group=null,"["===se(t)&&(n.groupStart=!0),"]"===ie(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===se(t))){const e=re.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ie(t)&&(n.greedy=!0,t=ae(t)),"*"!==t&&"*"===ie(t)&&"\\*"!==t&&(n.greedy=!0,t=ae(t)),"?"===ie(t)&&(n.optional=!0,t=ae(t)),"!"===se(t)&&(n.negative=!0,t=le(t)),"~"===se(t)&&"~"===ie(t)&&t.length>2&&(t=ce(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===se(t)&&")"===ie(t)){ne.test(t)?(n.choices=t.split(ne),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=le(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ae(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>ue(t,e))),t=""}if("/"===se(t)&&"/"===ie(t))return t=ce(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===se(t)&&"}"===ie(t)){if(t=ce(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===se(t)&&">"===ie(t))return t=ce(t),n.chunk=oe(t),n.greedy=!0,n;if("%"===se(t)&&"%"===ie(t))return t=ce(t),n.switch=t,n}return!0===ee.test(t)&&(t=t.replace(ee,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===se(t)?(n.tag=le(t),n.tag=oe(n.tag),n):"@"===se(t)?(n.method=le(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var he=ue;const fe=/[a-z0-9][-–—][a-z]/i;var pe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&fe.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t};var de=function(t,e){return e.methods.two&&e.methods.two.transform&&(t=t.map(t=>{if(t.root){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform,r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter(t=>t)}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return r.push(n(t.root,e.model)),r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i}(t,e))),n=n.filter(t=>t),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}return t})),t};var me=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=t.map(t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))};var ge=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=te(t);return r=r.map(t=>he(t,e)),r=pe(r,n),r=de(r,n),r=me(r),r};const we=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var ve=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),ke=(t,e)=>-1!==t.pre.indexOf(e),Pe={hasQuote:t=>be.test(t.pre)||xe.test(t.post),hasComma:t=>Oe(t,","),hasPeriod:t=>!0===Oe(t,".")&&!1===Oe(t,"..."),hasExclamation:t=>Oe(t,"!"),hasQuestionMark:t=>Oe(t,"?")||Oe(t,"¿"),hasEllipses:t=>Oe(t,"..")||Oe(t,"…")||ke(t,"..")||ke(t,"…"),hasSemicolon:t=>Oe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>je.test(t.post)||je.test(t.pre),hasDash:t=>Ee.test(t.post)||Ee.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};Pe.hasQuotation=Pe.hasQuote;var _e=Pe;let Se=function(){};Se=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ye(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof _e[e.method]&&!0===_e[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Se(t,e,n,r)):e.choices.some(e=>Se(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Ae=Se;const Te=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){$e(t,t.t).length=r-t.t}return t.t=r,!0};const ze=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Ae(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Ae(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){$e(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Fe=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Ae(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null};var Ve=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Ae(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Ae(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var qe=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var De=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Ge=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Ve(t),r.implicit&&t.terms[t.t+1]&&De(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!qe(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=$e(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Be=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==Te(t,o))if(!0!==Ae(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative){if(!Fe(o))return null}if(!0!==t.optional)return null}else{if(!Ge(o))return null}else{if(!Ge(o))return null}else{if(!Ge(o))return null}else{if(!Le(o))return null}else{if(!Ne(o))return null}else{if(!Ce(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}};var Ue=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const Me=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},We=function(t,e,n){let r=Be(t,e,0,t.length);return r?(r=Me(r,n),r):null};var Ie={api:Ht,methods:{one:{termMethods:_e,parseMatch:ge,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=We(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Ue(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Re=/^\../,Qe=/^#./,He=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Re.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var Ze={html:function(t){let{starts:e,ends:n}=He(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Je,""),Ye.test(o)&&(o=" "),o=o.replace(Xe,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Je,""),o="-"===o?" ":o.replace(Ke,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&tn.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let on=[],sn=0;for(;sn<64;)on[sn]=0|4294967296*Math.sin(++sn%Math.PI);function ln(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(sn=s=0;sn>4]+on[s]+~~i[sn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const an={text:!0,terms:!0};let cn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(t,e){return Object.assign({},t,e)},hn={text:t=>en(t,{keepPunct:!0},!1),normal:t=>en(t,un(rn.normal,{keepPunct:!0}),!1),implicit:t=>en(t,un(rn.implicit,{keepPunct:!0}),!1),machine:t=>en(t,cn,!1),root:t=>en(t,un(cn,{form:"root"}),!1),hash:t=>ln(en(t,{keepPunct:!0},!1)),offset:t=>{let e=hn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const fn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},an,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&hn[i]&&(o[i]=hn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};fn.data=fn.json;var pn=fn;var dn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};var mn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var gn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(mn.blue("\n ──────")),e.forEach(t=>{console.log(mn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=mn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=mn.blue(" │ ")+mn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return mn[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var wn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(mn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(mn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(mn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(mn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var vn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${mn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const yn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var bn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t)}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}};var jn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&rn.hasOwnProperty(t)?e=Object.assign({},rn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Pn=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var _n=function(t,e){let n=Pn(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r};var Sn={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:Pn,splitAll:_n}}};var An=function(t,e){let n=t.concat(e),r=Pn(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>kn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n};var $n=function(t,e){let n=Pn(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>kn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},zn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Nn={union:function(t){t=Cn(t,this);let e=An(this.fullPointer,t.fullPointer);return e=zn(e,this.document),this.toView(e)}};Nn.and=Nn.union,Nn.intersection=function(t){t=Cn(t,this);let e=$n(this.fullPointer,t.fullPointer);return e=zn(e,this.document),this.toView(e)},Nn.not=function(t){t=Cn(t,this);let e=Tn(this.fullPointer,t.fullPointer);return e=zn(e,this.document),this.toView(e)},Nn.difference=Nn.not,Nn.complement=function(){let t=this.all(),e=Tn(t.fullPointer,this.fullPointer);return e=zn(e,this.document),this.toView(e)},Nn.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=An(t,[e])}),t=zn(t,this.document),this.update(t)};var Ln={methods:Sn,api:function(t){Object.assign(t.prototype,Nn)}};const Fn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var Vn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Fn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Fn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Fn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t};var qn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})};var Dn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>{if(0===t.wants.length)return!0;return t.wants.filter(t=>r.has(t)).length>=t.minWant})})};var Gn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o};var Bn=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=Vn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=qn(o,e.hooks);return i=Dn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Gn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Bn(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(a,t.unTag,n,t.safe,o),t.chunk&&a.forEach(e=>e.chunk=t.chunk)})}}}};const Mn=/ /,Wn=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},In=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Mn.test(e))!function(t,e,n,r){let o=e.split(Mn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),In(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nRn(t,e,n,r))};var Qn=Rn;var Hn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Zn({id:t})),e}return[Zn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},Yn=t=>"[object Array]"===Object.prototype.toString.call(t),tr=t=>(t=t||"").trim(),er=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Kn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Jn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Zn({});return t.forEach(t=>{if((t=Zn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Xn(e=t).forEach(Zn),e);var e},nr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Xn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},rr=function(t){let e=Xn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},or={text:nr,txt:nr,array:rr,flat:rr},ir=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(nr(t,!0)),null):or.hasOwnProperty(e)?or[e](t):t},sr=t=>{Xn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},lr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=tr(t),!lr.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Zn({});return new g(e)}add(t,e={}){if(Yn(t))return t.forEach(t=>this.add(tr(t),e)),this;t=tr(t);let n=Zn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=tr(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Xn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Xn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Xn(this.json)}fillDown(){var t;return t=this.json,Xn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Yn(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){sr(this.json);let t=Xn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return sr(this.json),ir(this.json,t)}debug(){return sr(this.json),ir(this.json,"debug"),this}}const ar=function(t){let e=er(t);return new g(e)};ar.prototype.plugin=function(t){t(this)};var cr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ur=function(t){if(cr.hasOwnProperty(t.id))return cr[t.id];if(cr.hasOwnProperty(t.is))return cr[t.is];let e=t._cache.parents.find(t=>cr[t]);return cr[e]};var hr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:ur(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const fr=function(t){return t?"string"==typeof t?[t]:t:[]};var pr=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=fr(t[e].children),t[e].not=fr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t};var dr={one:{setTag:Qn,unTag:Hn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=pr(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return ar(e).cache().fillDown().out("array")}(Object.assign({},e,t));return hr(n)}}};const mr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var gr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),mr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return mr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}};var wr=function(t){Object.assign(t.prototype,gr)};var vr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const yr=new Set(["Auxiliary","Possessive"]);var br={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(yr.has(t)||!e.hasOwnProperty(n))return 1;if(yr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:dr,api:wr,lib:vr};const xr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,jr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Er=function(t){let e=[],n=t.split(jr);for(let t=0;t0&&(r.push(e),o[t]="")}if(0===r.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Br=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ur=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Mr=/['’]/,Wr=/^[a-z]\.([a-z]\.)+/i,Ir=/^[-+.][0-9]/,Rr=/^'[0-9]{2}/;var Qr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Br,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Ir.test(t)?"'"===n&&Rr.test(t)?(n="",e):"":(n="",e)))).replace(Ur,o=>(r=o,Mr.test(o)&&/[sn]['’]$/.test(e)&&!1===Mr.test(n)?(r=r.replace(Mr,""),"'"):!0===Wr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Hr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Zr=/([A-Z]\.)+[A-Z]?,?$/,Kr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,Xr=/([a-z]\.)+[a-z]\.?$/;var Yr=function(t){return function(t){return!0===Zr.test(t)||!0===Xr.test(t)||!0===Kr.test(t)||!0===Jr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var to=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Hr(r),r=n(r,e),r=Yr(r),t.normal=r};var eo={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:$r,splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Dr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Fr(n),n=Nr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Qr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",r).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{to(t,e)}),n})}}}};var no={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ro={},oo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{ro[e]=!0,oo[e]="Abbreviation",void 0!==t[1]&&(oo[e]=[oo[e],t[1]])})});var io=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let so={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},lo={};Object.keys(so).forEach((function(t){so[t].split("").forEach((function(e){lo[e]=t}))}));const ao=/\//,co=/[a-z]\.[a-z]/i,uo=/[0-9]/;var ho=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ao.test(n)&&!co.test(n)&&!uo.test(n)){let e=n.split(ao);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const fo=/^\p{Letter}+-\p{Letter}+$/u;var po=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),fo.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var mo=function(t){let e=0,n=0,r=t.document;for(let t=0;tgo(t,ho),machine:t=>go(t,po),normal:t=>go(t,to),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const bo={safe:!0,min:3};var xo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},bo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=yo(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}};var jo={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=vo},lib:xo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};d.extend(H),d.extend(On),d.extend(Ie),d.extend(Ln),d.extend(br),d.plugin(xt),d.extend(wo),d.plugin(w),d.extend(zt),d.extend(jo),d.extend(Pt),d.extend(Un);export{d as default}; +var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach(r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)}):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n={forEach:function(t){return this.fullPointer.forEach((e,n)=>{let r=this.update([e]);t(r,n)}),this},map:function(t,e){let n=this.fullPointer.map((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o});if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(t=>{r=r.concat(t.fullPointer)}),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter((e,n)=>{let r=this.update([e]);return t(r,n)}),this.update(e)},find:function(t){let e=this.fullPointer.find((e,n)=>{let r=this.update([e]);return t(r,n)});return this.update([e])},some:function(t){return this.fullPointer.some((e,n)=>{let r=this.update([e]);return t(r,n)})},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach(t=>{e[t]=this.update(this._groups[t])}),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map((t,e)=>[e])),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map((t,e)=>[e]);return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map(t=>[t[0]]);return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce((t,e)=>t+=e.filter(t=>""!==t.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,e,n);i.get=i.eq;var s=i;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach(t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})}),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this;return(e||t.map((t,e)=>[e])).map(t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]})}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])}),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map(t=>t.map(t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,s);var l=View;const a=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};var c=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&function t(e,n){if(a(n))for(const r in n)a(n[r])?(e[r]||Object.assign(e,{[r]:{}}),t(e[r],n[r])):Object.assign(e,{[r]:n[r]});return e}(i,t.model),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach(e=>r[e]=t.lib[e]),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const u=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var h=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(u(t)){if(u(t[0])){return new e(t.map(t=>t.map(t=>({text:t,normal:t,pre:"",post:" ",tags:new Set}))))}return new e(function(t){return t.map(t=>t.terms.map(t=>(u(t.tags)&&(t.tags=new Set(t.tags)),t)))}(t))}return o};let f=Object.assign({},t);const p=function(t,e){e&&p.addWords(e);let n=h(t,l,f);return t&&n.compute(f.hooks),n};Object.defineProperty(p,"_world",{value:f,writable:!0}),p.tokenize=function(t,e){const{compute:n}=this._world;e&&p.addWords(e);let r=h(t,l,f);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(t){return c(t,this._world,l,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},p.version="14.4.0";var d=p;const m={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var w={api:function(t){Object.assign(t.prototype,m)},compute:{cache:function(t){t._cache=t.methods.one.cacheDoc(t.document)}},methods:{one:{cacheDoc:function(t){return t.map(t=>{let e=new Set;return t.forEach(t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach(t=>e.add(t));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),b=(t,e,n)=>{if(n.forEach(t=>t.dirty=!0),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},y=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},x=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},j=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?y(n):(y(n),y([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,t=>t.toUpperCase());let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||v(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,t=>t.toLowerCase())));var i}(t,i,n),b(t,i,n)};let E=0;const O=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var k=function(t){let[e,n]=t.index||[0,0];E+=1,E=E>46655?0:E,e=e>46655?0:e,n=n>1294?0:n;let r=O(E.toString(36));r+=O(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const P=function(t){if(t.has("@hasContraction")){t.grow("@hasContraction").contractions().expand()}},_=t=>"[object Array]"===Object.prototype.toString.call(t),S=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]:_(t)?_(t[0])?t[0]:t:[]}(t,o);f=function(t){return t.map(t=>(t.id=k(t),t))}(f),n?(P(e.update([c]).firstTerm()),j(h,c,f,r)):(P(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)}),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t.replace($,t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})}(t,r);let o=this.update(n);n=n.map(t=>t.slice(0,3));let i=(o.docs[0]||[]).map(t=>Array.from(t.tags));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach((t,e)=>{t.tagSafe(i[e])}),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),s},C.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var z=C;var N=function(t,e){e.forEach(e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))});for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const L={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=N(this.document,i);return o=function(t,e){return(t=t.map(t=>{let[n]=t;return e[n]?(e[n].forEach(e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)}),t):t})).forEach((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0)).map(t=>(t[3]=null,t[4]=null,t))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};L.delete=L.remove;var F=L;const V={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t}),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t}),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")})}),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach(e=>{e.forEach(e=>{t.test(e.post)&&(e.post=" ")})}),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach(n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var q=V;var D={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach(t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1}),t.sort((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0}),t}};const G=new Set(["index","sequence","seq","sequential","chron","chronological"]),B=new Set(["freq","frequency","topk","repeats"]),U=new Set(["alpha","alphabetical"]);var M={unique:function(){let t=new Set;return this.filter(e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)})},reverse:function(){let t=this.pointer||this.docs.map((t,e)=>[e]);return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map((t,e)=>[e]),o=e.map((t,e)=>({index:e,words:t.length,normal:t.map(t=>t.machine||t.normal||"").join(" "),pointer:r[e]}));return G.has(t)&&(t="sequential"),U.has(t)&&(t="alpha"),B.has(t)?(o=D.byFreq(o),this.update(o.map(t=>t.pointer))):"function"==typeof D[t]?(o=o.sort(D[t]),this.update(o.map(t=>t.pointer))):this}};const W=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var I={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return b(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach(e=>{e[0]+=t.document.length}),t.document=W(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=W(this.document,t);return this.document=e,this.all()}var o;return this}};var R={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map(t=>t.slice(0,3)),this.ptrs=t),this}};const Q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(t=>{t.text=t.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(t=>{t.text=t.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(t=>{t.forEach((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,t=>t.toUpperCase())),n!==t.length-1&&(e.post="")})}),this}},T,z,F,q,M,I,R);var H={api:function(t){Object.assign(t.prototype,Q)},compute:{id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t)))[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const J=/'/,X=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),tt=new Set(["been","gone"]);var et=function(t,e){let n=t[e].normal.split(J)[0];if(X.has(n))return[n,"did"];if(t[e+1]){if(tt.has(t[e+1].normal))return[n,"had"];if(Y.has(t[e+1].normal))return[n,"would"]}return null};var nt=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const rt=/'/;var ot=(t,e)=>["je",t[e].normal.split(rt)[1]],it=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},st=(t,e)=>{let n=t[e].normal.split(rt)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const lt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,at=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ct=/^[0-9]{3}-[0-9]{4}$/;var ut=function(t,e){let n=t[e],r=n.text.match(lt);return null!==r?!0===n.tags.has("PhoneNumber")||ct.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(at),null!==r?[r[1],"to",r[4]]:null)};const ht=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ft=new Set(["st","nd","rd","th","am","pm","max"]);var pt=function(t,e){let n=t[e].text.match(ht);if(null!==n){let t=n[2].toLowerCase().trim();return ft.has(t)?null:[n[1],t]}return null};const dt=/'/,mt=/^[0-9][^-–—]*[-–—].*?[0-9]/,gt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},wt={t:(t,e)=>nt(t,e),d:(t,e)=>et(t,e)},vt={j:(t,e)=>ot(t,e),l:(t,e)=>it(t,e),d:(t,e)=>st(t,e)},bt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===dt.test(r[l].normal)&&([a,c]=r[l].normal.split(dt));let u=bt(i,r[l],a,c);!u&&wt.hasOwnProperty(c)&&(u=wt[c](r,l,e)),!u&&vt.hasOwnProperty(a)&&(u=vt[a](r,l)),u?(u=yt(u,t),K(n,[s,l],u),gt(n[s],t,l,u.length)):mt.test(r[l].normal)?(u=ut(r,l),u&&(u=yt(u,t),K(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),gt(n[s],t,l,u.length))):(u=pt(r,l),u&&(u=yt(u,t),K(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}})}},hooks:["contractions"]};var jt=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===Et.test(a)){let t=a.replace(Et,"");if(s.hasOwnProperty(t)&&t.length>3&&Ot.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var Pt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(t){let e={},n={};return Object.keys(t).forEach(r=>{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o}),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}}}},compute:{lexicon:function(t){const e=t.world;t.docs.forEach(t=>{for(let n=0;n{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))}),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},hooks:["lexicon"]};var _t=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map(t=>t.text.toLowerCase())}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const St=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const $t=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1);return t};var Ct=function(t){return t.goNext=t.goNext.map(t=>{if(0!==Object.keys(t).length)return t}),t.goNext=$t(t.goNext,void 0),t.failTo=$t(t.failTo,0),t.endAs=$t(t.endAs,null),t};const zt={buildTrie:function(t){const e=_t(t,this.world());return Ct(e)}};zt.compile=zt.buildTrie;var Nt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:_t(t,this.world));var r;let o=Tt(this,n,e);return o=o.settle(),o}},lib:zt};const Lt=function(t,e){return e?(t.forEach(t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])}),t):t},Ft=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Lt(n,e),Object.keys(r).forEach(t=>{r[t]=Lt(r[t],e)}),{ptrs:n,byGroup:r}},Vt=t=>"[object Object]"===Object.prototype.toString.call(t),qt=t=>t&&Vt(t)&&!0===t.isView,Dt=t=>t&&Vt(t)&&!0===t.isNet,Gt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Bt={matchOne:function(t,e,n){const r=this.methods.one;if(qt(t))return this.intersection(t).eq(0);if(Dt(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ft(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(qt(t))return this.intersection(t);if(Dt(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Gt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=Ft(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(qt(t)){return t.fullPointer.length>0}if(Dt(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(qt(t))return this.filter(e=>e.intersection(t).found);if(Dt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Gt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0});let l=this.update(i);return this._cache&&(l._cache=i.map(t=>s[t[0]])),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(qt(t))return this.filter(e=>!e.intersection(t).found);if(Dt(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Gt(t,n,this.world);let i=this._cache||[],s=this.filter((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length});return this._cache&&(s._cache=s.ptrs.map(t=>i[t[0]])),s}};var Ut={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?1:-1)[0];e[1]>0&&o.push([e[0],0,e[1]])});let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach(t=>{let e=i[t].sort((t,e)=>t[1]>e[1]?-1:1)[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}}),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}}),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Mt=function(t,e){return[t[0],t[1],e[2]]},Wt=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},It=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},Rt={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Wt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>It(t,this)),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Wt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Mt(t.match,t.after)):(i.push(t.match),i.push(t.after))}),i=i.filter(t=>t),i=i.map(t=>It(t,this)),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=Wt(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach(t=>{i.push(t.passthrough),t.before&&t.match?i.push(Mt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)}),i=i.filter(t=>t),i=i.map(t=>It(t,this)),this.update(i)}};Rt.split=Rt.splitAfter;var Qt=Rt;const Ht=Object.assign({},Bt,Ut,Qt);Ht.lookBehind=Ht.before,Ht.lookBefore=Ht.before,Ht.lookAhead=Ht.after,Ht.lookAfter=Ht.after,Ht.notIf=Ht.ifNo;var Zt=function(t){Object.assign(t.prototype,Ht)};const Kt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Jt=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Xt=/ /g,Yt=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),te=function(t){return t=(t=t.map(t=>t.trim())).filter(t=>t)};var ee=function(t){let e=t.split(Kt),n=[];e.forEach(t=>{Yt(t)?n.push(t):n=n.concat(t.split(Jt))}),n=te(n);let r=[];return n.forEach(t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||Yt(t)?r.push(t):r=r.concat(t.split(Xt))}),r=te(r),r};const ne=/\{([0-9]+)?(, *[0-9]*)?\}/,re=/&&/,oe=new RegExp(/^<\s*(\S+)\s*>/),ie=t=>t.charAt(0).toUpperCase()+t.substring(1),se=t=>t.charAt(t.length-1),le=t=>t.charAt(0),ae=t=>t.substring(1),ce=t=>t.substring(0,t.length-1),ue=function(t){return t=ae(t),t=ce(t)},he=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===se(t)&&(n.end=!0,t=ce(t)),"^"===le(t)&&(n.start=!0,t=ae(t)),("["===le(t)||"]"===se(t))&&(n.group=null,"["===le(t)&&(n.groupStart=!0),"]"===se(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===le(t))){const e=oe.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===se(t)&&(n.greedy=!0,t=ce(t)),"*"!==t&&"*"===se(t)&&"\\*"!==t&&(n.greedy=!0,t=ce(t)),"?"===se(t)&&(n.optional=!0,t=ce(t)),"!"===le(t)&&(n.negative=!0,t=ae(t)),"~"===le(t)&&"~"===se(t)&&t.length>2&&(t=ue(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===le(t)&&")"===se(t)){re.test(t)?(n.choices=t.split(re),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ae(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ce(n.choices[r]),n.choices=n.choices.map(t=>t.trim()),n.choices=n.choices.filter(t=>t),n.choices=n.choices.map(t=>t.split(/ /g).map(t=>he(t,e))),t=""}if("/"===le(t)&&"/"===se(t))return t=ue(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===le(t)&&"}"===se(t)){if(t=ue(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===le(t)&&">"===se(t))return t=ue(t),n.chunk=ie(t),n.greedy=!0,n;if("%"===le(t)&&"%"===se(t))return t=ue(t),n.switch=t,n}return!0===ne.test(t)&&(t=t.replace(ne,(t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===le(t)?(n.tag=ae(t),n.tag=ie(n.tag),n):"@"===le(t)?(n.method=ae(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var fe=he;const pe=/[a-z0-9][-–—][a-z]/i;var de=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&pe.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter(t=>t).reverse(),t.splice(e,1),o.forEach(n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)})}}return t};var me=function(t,e){return e.methods.two&&e.methods.two.transform&&(t=t.map(t=>{if(t.root){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform,r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter(t=>t)}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return r.push(n(t.root,e.model)),r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i}(t,e))),n=n.filter(t=>t),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}return t})),t};var ge=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach(e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)}),t))}(t=t.map(t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every(t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method})&&(t.fastOr=new Set,t.choices.forEach(e=>{t.fastOr.add(e[0].word)}),delete t.choices)}return t}))};var we=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=ee(t);return r=r.map(t=>fe(t,e)),r=de(r,n),r=me(r,n),r=ge(r),r};const ve=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var be=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Pe=(t,e)=>-1!==t.pre.indexOf(e),_e={hasQuote:t=>xe.test(t.pre)||je.test(t.post),hasComma:t=>ke(t,","),hasPeriod:t=>!0===ke(t,".")&&!1===ke(t,"..."),hasExclamation:t=>ke(t,"!"),hasQuestionMark:t=>ke(t,"?")||ke(t,"¿"),hasEllipses:t=>ke(t,"..")||ke(t,"…")||Pe(t,"..")||Pe(t,"…"),hasSemicolon:t=>ke(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ee.test(t.post)||Ee.test(t.pre),hasDash:t=>Oe.test(t.post)||Oe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};_e.hasQuotation=_e.hasQuote;var Se=_e;let Ae=function(){};Ae=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ye(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some(t=>t===e.word))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Se[e.method]&&!0===Se[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every(e=>Ae(t,e,n,r)):e.choices.some(e=>Ae(t,e,n,r)))}(t,e,n,r);return!0===e.negative?!o:o};var Te=Ae;const $e=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Ce(t,t.t).length=r-t.t}return t.t=r,!0};const Ne=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Te(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Te(t.terms[r],e,r,t.phrase_length)});return!0===r&&n.length>e&&(e=n.length),r})&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Ce(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Ve=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);return r.negative=!1,!0!==Te(t.terms[t.t],r,t.start_i+t.t,t.phrase_length)||null};var qe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Te(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Te(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var De=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var Ge=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Be=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&qe(t),r.implicit&&t.terms[t.t+1]&&Ge(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!De(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ce(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Ue=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==$e(t,o))if(!0!==Te(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(t.negative){if(!Ve(o))return null}if(!0!==t.optional)return null}else{if(!Be(o))return null}else{if(!Be(o))return null}else{if(!Be(o))return null}else{if(!Fe(o))return null}else{if(!Le(o))return null}else{if(!ze(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach(t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]}),{pointer:i,groups:s}};var Me=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach(t=>{t.groups[e]&&n.push(t.groups[e])}):t.forEach(t=>{n.push(t.pointer),Object.keys(t.groups).forEach(e=>{r[e]=r[e]||[],r[e].push(t.groups[e])})})),{ptrs:n,byGroup:r}};const We=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach(n=>{t.groups[n][0]=e}),t},Ie=function(t,e,n){let r=Ue(t,e,0,t.length);return r?(r=We(r,n),r):null};var Re={api:Zt,methods:{one:{termMethods:Se,parseMatch:we,match:function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter(t=>!0!==t.optional&&!0!==t.negative).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=Ie(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter(e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]})),s=Me(s,o),s.ptrs.forEach(e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id}),s}}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const Qe=/^\../,He=/^#./,Ze=function(t,e){let n={},r={};return Object.keys(e).forEach(o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Qe.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach(t=>{if(t.every(t=>t.implicit))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)})}),{starts:n,ends:r}};var Ke={html:function(t){let{starts:e,ends:n}=Ze(this,t),r="";return this.docs.forEach(t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(Xe,""),tn.test(o)&&(o=" "),o=o.replace(Ye,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(Xe,""),o="-"===o?" ":o.replace(Je,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&en.test(o)||(o+=" "),r+=n+i+o}),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},rn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};rn.clean=rn.normal,rn.reduced=rn.root;var on=rn;let sn=[],ln=0;for(;ln<64;)sn[ln]=0|4294967296*Math.sin(++ln%Math.PI);function an(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(ln=s=0;ln>4]+sn[s]+~~i[ln|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const cn={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const hn=function(t,e){return Object.assign({},t,e)},fn={text:t=>nn(t,{keepPunct:!0},!1),normal:t=>nn(t,hn(on.normal,{keepPunct:!0}),!1),implicit:t=>nn(t,hn(on.implicit,{keepPunct:!0}),!1),machine:t=>nn(t,un,!1),root:t=>nn(t,hn(un,{form:"root"}),!1),hash:t=>an(nn(t,{keepPunct:!0},!1)),offset:t=>{let e=fn.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map(t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e}),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some(t=>!0===t.dirty)};fn.sentences=fn.sentence,fn.clean=fn.normal,fn.reduced=fn.root;const pn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},cn,r)).offset&&n.compute("offset"),n.docs.map((t,e)=>{let o={};return Object.keys(r).forEach(i=>{r[i]&&fn[i]&&(o[i]=fn[i](t,n,e))}),o}));var n,r;return"number"==typeof t?e[t]:e}};pn.data=pn.json;var dn=pn;var mn=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach(t=>{console.groupCollapsed(t.text());let e=t.docs[0].map(t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}});console.table(e,["text","tags"]),console.groupEnd()})};var gn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var wn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(gn.blue("\n ──────")),e.forEach(t=>{console.log(gn.blue("\n ┌─────────")),t.forEach(t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=gn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=gn.blue(" │ ")+gn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map(t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return gn[n](t)})),t.join(", ")}(e,n);console.log(i)})})};var vn=function(t){let{docs:e}=t;console.log(""),e.forEach(t=>{let e=[];t.forEach(t=>{"Noun"===t.chunk?e.push(gn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(gn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(gn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(gn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)}),console.log(e.join(" "),"\n")})};var bn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),Object.keys(e).forEach(n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${gn.blue(r[1])}${r[2]}`}(r,t.offset,e)}),console.log(r)})};const yn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var xn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach(r=>{t.match(r).fullPointer.forEach(t=>{n[t[3]]={fn:e[r],end:t[2]}})}),n}(t,e),r="";return t.docs.forEach((e,o)=>{for(let i=0;it.reduce((t,e)=>t+e.pre+e.text+e.post,"").trim()).filter(t=>t)}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};return t.forEach(t=>{e[t]=e[t]||0,e[t]+=1}),Object.keys(e).map(t=>({normal:t,count:e[t]})).sort((t,e)=>t.count>e.count?-1:0)}(this.json({normal:!0}).map(t=>t.normal));if("terms"===t){let t=[];return this.docs.forEach(e=>{let n=e.terms.map(t=>t.text);n=n.filter(t=>t),t=t.concat(n)}),t}return"tags"===t?this.docs.map(t=>t.reduce((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t),{})):"debug"===t?this.debug():this.text()}};var En={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&on.hasOwnProperty(t)?e=Object.assign({},on[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},_n=function(t){let e={};return t.forEach(t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)}),e};var Sn=function(t,e){let n=_n(e),r=[];return t.forEach(t=>{let[e]=t,o=n[e]||[];if(o=o.filter(e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e)),0===o.length)return void r.push({passthrough:t});o=o.sort((t,e)=>t[1]-e[1]);let i=t;o.forEach((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)})}),r};var An={one:{termList:function(t){let e=[];for(let n=0;n{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<4;r+=1){if(e[n-r]){let o=e[n-r].findIndex(e=>e.id===t);if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex(e=>e.id===t);if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex(t=>t.id===o);return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))}),n=n.filter(t=>t.length>0),n},pointer:{indexN:_n,splitAll:Sn}}};var Tn=function(t,e){let n=t.concat(e),r=_n(n),o=[];return n.forEach(t=>{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter(e=>Pn(t,e));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach(t=>{t[1]n&&(n=t[2])}),[t[0][0],e,n]}(n);o.push(i)}),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)}),n};var Cn=function(t,e){let n=_n(e),r=[];return t.forEach(t=>{let e=n[t[0]]||[];e=e.filter(e=>Pn(t,e)),0!==e.length&&e.forEach(e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Nn=function(t,e){return t.map(t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t})},Ln={union:function(t){t=zn(t,this);let e=Tn(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)}};Ln.and=Ln.union,Ln.intersection=function(t){t=zn(t,this);let e=Cn(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.not=function(t){t=zn(t,this);let e=$n(this.fullPointer,t.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.difference=Ln.not,Ln.complement=function(){let t=this.all(),e=$n(t.fullPointer,this.fullPointer);return e=Nn(e,this.document),this.toView(e)},Ln.settle=function(){let t=this.fullPointer;return t.forEach(e=>{t=Tn(t,[e])}),t=Nn(t,this.document),this.update(t)};var Fn={methods:An,api:function(t){Object.assign(t.prototype,Ln)}};const Vn=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var qn=function(t,e){const n=e.methods.one.parseMatch;return t.forEach(t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach(t=>{e.push(Vn(t)),"and"===t.operator&&t.choices&&t.choices.forEach(t=>{t.forEach(t=>{e.push(Vn(t))})})}),e.filter(t=>t)}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach(t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach(t=>{e.push(t)}),t.choices&&t.choices.forEach(t=>{t.forEach(t=>{let n=Vn(t);n&&e.push(n)})}),n+=1)}),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter(t=>!t.optional).length}),t};var Dn=function(t,e){return t.map((n,r)=>{let o=[];Object.keys(e).forEach(n=>{t[r].has(n)&&(o=o.concat(e[n]))});let i={};return o=o.filter(t=>!i[t.match]&&(i[t.match]=!0,!0)),o})};var Gn=function(t,e){return t.map((t,n)=>{let r=e[n];return t=(t=(t=t.filter(t=>t.needs.every(t=>r.has(t)))).filter(t=>void 0===t.ifNo||!0!==t.ifNo.some(t=>e[n].has(t)))).filter(t=>{if(0===t.wants.length)return!0;return t.wants.filter(t=>r.has(t)).length>=t.minWant})})};var Bn=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach(t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)}),!0===r.matchOne))return[o[0]]}return o};var Un=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t});let s=i.map(t=>t.pointer);return i=i.map(t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t)),{view:this.update(s),found:i}}},methods:{one:{buildNet:function(t,e){t=qn(t,e);let n={};t.forEach(t=>{t.needs.forEach(e=>{n[e]=n[e]||[],n[e].push(t)}),t.wants.forEach(e=>{n[e]=n[e]||[],n[e].push(t)})}),Object.keys(n).forEach(t=>{let e={};n[t]=n[t].filter(t=>!e[t.match]&&(e[t.match]=!0,!0))});let r=t.filter(t=>0===t.needs.length&&0===t.wants.length);return{hooks:n,always:r}},bulkMatch:function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=Dn(o,e.hooks);return i=Gn(i,o),e.always.length>0&&(i=i.map(t=>t.concat(e.always))),i=function(t,e){return t.map((t,n)=>{let r=e[n].length;return t.filter(t=>r>=t.minWords)})}(i,t),Bn(i,t,n,r)},bulkTagger:function(t,e,n){const{model:r,methods:o}=n,{getDoc:i,setTag:s,unTag:l}=o.one;if(0===t.length)return t;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${t.length} post-tagger:`),t.map(t=>{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,a=i([t.pointer],e)[0];if(!0===t.safe){if(!1===Un(a,t.tag,r))return;if("-"===a[a.length-1].post)return}void 0!==t.tag&&(s(a,t.tag,n,t.safe,`[post] '${o}'`),1===a.length&&"Noun"===t.tag&&a[0].text&&null!==a[0].text.match(/..s$/)&&s(a,"Plural",n,t.safe,"quick-plural")),void 0!==t.unTag&&l(a,t.unTag,n,t.safe,o),t.chunk&&a.forEach(e=>e.chunk=t.chunk)})}}}};const Wn=/ /,In=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},Rn=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map(t=>t.text||"["+t.implicit+"]").join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if(e=e.trim(),Wn.test(e))!function(t,e,n,r){let o=e.split(Wn);t.forEach((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),Rn(t,i,n,r))})}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nQn(t,e,n,r))};var Hn=Qn;var Zn=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach(t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map(t=>t.trim()).filter(t=>t),e=e.map(t=>Kn({id:t})),e}return[Kn({id:t})]}(t))}),n=n.filter(t=>t);let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach(n=>{e&&e(t,n),r.push(n)})}return n},tr=t=>"[object Array]"===Object.prototype.toString.call(t),er=t=>(t=t||"").trim(),nr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach(t=>{if(!t.trim()||Jn.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Xn(t)})});let r=function(t){let e={children:[]};return t.forEach((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t});let n=Kn({});return t.forEach(t=>{if((t=Kn(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)}),n}(t):(Yn(e=t).forEach(Kn),e);var e},rr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Yn(t).forEach((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"}),r},or=function(t){let e=Yn(t);e.forEach(t=>{delete(t=Object.assign({},t)).children});let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},ir={text:rr,txt:rr,array:or,flat:or},sr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(rr(t,!0)),null):ir.hasOwnProperty(e)?ir[e](t):t},lr=t=>{Yn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))})},ar=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=er(t),!ar.test(t)){let e=this.json.children.find(e=>e.id===t);return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]);if(!r)return null;t=r}return t})(this.json,t)||Kn({});return new g(e)}add(t,e={}){if(tr(t))return t.forEach(t=>this.add(er(t),e)),this;t=er(t);let n=Kn({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=er(t),this.json.children=this.json.children.filter(e=>e.id!==t),this}nodes(){return Yn(this.json).map(t=>(delete(t=Object.assign({},t)).children,t))}cache(){return(t=>{let e=Yn(t,(t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))}),n={};e.forEach(t=>{t.id&&(n[t.id]=t)}),e.forEach(t=>{t._cache.parents.forEach(e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)})}),t._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var t;return t=this.json,Yn(t,(t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach(n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else tr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])}),t))(e.props,t.props)}),this}depth(){lr(this.json);let t=Yn(this.json),e=t.length>1?1:0;return t.forEach(t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)}),e}out(t){return lr(this.json),sr(this.json,t)}debug(){return lr(this.json),sr(this.json,"debug"),this}}const cr=function(t){let e=nr(t);return new g(e)};cr.prototype.plugin=function(t){t(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const hr=function(t){if(ur.hasOwnProperty(t.id))return ur[t.id];if(ur.hasOwnProperty(t.is))return ur[t.is];let e=t._cache.parents.find(t=>ur[t]);return ur[e]};var fr=function(t){const e={};return t.forEach(t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:hr(t)}}),Object.keys(e).forEach(t=>{let n=new Set(e[t].not);e[t].not.forEach(t=>{e[t]&&e[t].children.forEach(t=>n.add(t))}),e[t].not=Array.from(n)}),e};const pr=function(t){return t?"string"==typeof t?[t]:t:[]};var dr=function(t,e){return t=function(t,e){return Object.keys(t).forEach(n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))}),t}(t,e),Object.keys(t).forEach(e=>{t[e].children=pr(t[e].children),t[e].not=pr(t[e].not)}),Object.keys(t).forEach(e=>{(t[e].not||[]).forEach(n=>{t[n]&&t[n].not&&t[n].not.push(e)})}),t};var mr={one:{setTag:Hn,unTag:Zn,addTags:function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach(e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0}),t}(t)),t=dr(t,e);const n=function(t){const e=Object.keys(t).map(e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}});return cr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return fr(n)}}};const gr=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var wr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),gr(t)?t.forEach(t=>o.one.setTag(r,t,s,n,e)):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return gr(t)?t.forEach(t=>r.one.unTag(n,t,s)):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach((t,e)=>{t.forEach((t,o)=>{n.find(e=>t.tags.has(e))&&r.push([e,o,o+1])})});let o=this.update(r);return this.difference(o)}};var vr=function(t){Object.assign(t.prototype,wr)};var br={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const yr=new Set(["Auxiliary","Possessive"]);var xr={model:{one:{tagSet:{}}},compute:{tagRank:function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach(t=>{t.forEach(t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t.sort((t,n)=>{if(yr.has(t)||!e.hasOwnProperty(n))return 1;if(yr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})}(e,r)})})}},methods:mr,api:vr,lib:br};const jr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Er=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Or=function(t){let e=[],n=t.split(Er);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const Ar=/\S/,Tr=/^\s+/;var $r=function(t,e){if(t=t||"",!(t=String(t))||"string"!=typeof t||!1===Ar.test(t))return[];t=t.replace(" "," ");let n=Or(t),r=_r(n),o=Sr(r,e);if(0===o.length)return[t];for(let t=1;t(t[e]=!0,t),{});const Br=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ur=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Mr=/['’]/,Wr=/^[a-z]\.([a-z]\.)+/i,Ir=/^[-+.][0-9]/,Rr=/^'[0-9]{2}/;var Qr=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Br,e=>(n=e,"-"!==n&&"+"!==n&&"."!==n||!Ir.test(t)?"'"===n&&Rr.test(t)?(n="",e):"":(n="",e)))).replace(Ur,o=>(r=o,Mr.test(o)&&/[sn]['’]$/.test(e)&&!1===Mr.test(n)?(r=r.replace(Mr,""),"'"):!0===Wr.test(t)?(r=r.replace(/\./,""),"."):"")))&&(e=e.replace(/ *$/,t=>(r=t||"","")),t=e,n=""),{str:t,pre:n,post:r}};var Hr=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Zr=/([A-Z]\.)+[A-Z]?,?$/,Kr=/^[A-Z]\.,?$/,Jr=/[A-Z]{2,}('s|,)?$/,Xr=/([a-z]\.)+[a-z]\.?$/;var Yr=function(t){return function(t){return!0===Zr.test(t)||!0===Xr.test(t)||!0===Kr.test(t)||!0===Jr.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var to=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Hr(r),r=n(r,e),r=Yr(r),t.normal=r};const eo=/[ .][A-Z]\.? *$/i,no=/(?:\u2026|\.{2,}) *$/,ro=/\p{L}/u;var oo={one:{killUnicode:function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach((t,e)=>{n[t]&&(r[e]=n[t])}),r.join("")},tokenize:{splitSentences:$r,isSentence:function(t,e){if(!1===ro.test(t))return!1;if(!0===eo.test(t))return!1;if(!0===no.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Dr);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=Fr(n),n=Nr(n),n=n.filter(t=>t),n},splitWhitespace:t=>{let{str:e,pre:n,post:r}=Qr(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map(t=>{let n=i(t,r);return n=n.map(s),n.forEach(t=>{to(t,e)}),n})}}}};var io={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let so={},lo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(t=>{t[0].forEach(e=>{so[e]=!0,lo[e]="Abbreviation",void 0!==t[1]&&(lo[e]=[lo[e],t[1]])})});var ao=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((t,e)=>(t[e]=!0,t),{});let co={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},uo={};Object.keys(co).forEach((function(t){co[t].split("").forEach((function(e){uo[e]=t}))}));const ho=/\//,fo=/[a-z]\.[a-z]/i,po=/[0-9]/;var mo=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ho.test(n)&&!fo.test(n)&&!po.test(n)){let e=n.split(ho);e.length<=2&&e.forEach(e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))})}return t};const go=/^\p{Letter}+-\p{Letter}+$/u;var wo=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),go.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var vo=function(t){let e=0,n=0,r=t.document;for(let t=0;tbo(t,mo),machine:t=>bo(t,wo),normal:t=>bo(t,to),freq:function(t){let e=t.docs,n={};for(let t=0;t{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]}),r};const Eo={safe:!0,min:3};var Oo={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},Eo,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=jo(t,e,this.world());return Object.keys(o).forEach(t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]}),this}};var ko={model:{one:{typeahead:{}}},api:function(t){t.prototype.autoFill=xo},lib:Oo,compute:{typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};d.extend(H),d.extend(kn),d.extend(Re),d.extend(Fn),d.extend(xr),d.plugin(xt),d.extend(yo),d.plugin(w),d.extend(Nt),d.extend(ko),d.extend(Pt),d.extend(Mn);export{d as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index e88969535..3cae6d243 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const p=function(e,t){t&&p.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(p,"_world",{value:d,writable:!0}),p.tokenize=function(e,t){const{compute:n}=this._world;t&&p.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},p.plugin=function(e){return u(e,this._world,s,this),this},p.extend=p.plugin,p.world=function(){return this._world},p.model=function(){return this._world.model},p.methods=function(){return this._world.methods},p.hooks=function(){return this._world.hooks},p.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},p.version="14.3.1";var m=p;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1;var r=k;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},E=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(x(t.update([u]).firstTerm()),P(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const pe=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===pe.test(r[s].normal)&&([l,u]=r[s].normal.split(pe));let c=ve(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](r,s)),c?(c=ye(c,e),Q(n,[i,s],c),ge(n[i],e,s,c.length)):me.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},xe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},Ee=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ne=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e},Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ee(e,this.world));var r;let a=Te(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Ee(e,this.world());return De(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Oe(n,t),Object.keys(r).forEach(e=>{r[e]=Oe(r[e],t)}),{ptrs:n,byGroup:r}},Be=e=>"[object Object]"===Object.prototype.toString.call(e),ze=e=>e&&Be(e)&&!0===e.isView,$e=e=>e&&Be(e)&&!0===e.isNet,Fe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Fe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(ze(e))return e.fullPointer.length>0;if($e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(ze(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(ze(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Fe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},He={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},Le=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},We=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Je={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Je.split=Je.splitAfter;var qe=Je;const Ke=Object.assign({},Se,He,qe);Ke.lookBehind=Ke.before,Ke.lookBefore=Ke.before,Ke.lookAhead=Ke.after,Ke.lookAfter=Ke.after,Ke.notIf=Ke.ifNo;var Ue=function(e){Object.assign(e.prototype,Ke)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ze=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{Ze(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Ye(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ze(e)?r.push(e):r=r.concat(e.split(_e))}),r=Ye(r),r};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),at=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===at(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===at(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===at(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===at(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===at(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===at(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===at(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===at(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let r=n.choices.length-1;n.choices[r]=st(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===at(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===at(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===at(e))return e=lt(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===at(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=rt(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&ht.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},mt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Xe(e);return r=r.map(e=>ct(e,t)),r=dt(r,n),r=pt(r,n),r=mt(r),r};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),xt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>kt.test(e.post)||kt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;var Et=xt;let Nt=function(){};Nt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Et[t.method]&&!0===Et[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,r)):t.choices.some(t=>Nt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=Nt;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Gt(e,e.t).length=r-e.t),e.t=r,!0)};const Ct=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Gt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Bt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},$t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||$t(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Gt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Tt(e,a)){if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Bt(a))return null;if(!0!==e.optional)return null}else if(!St(a))return null}else if(!St(a))return null}else if(!St(a))return null}else if(!Vt(a))return null}else if(!Ot(a))return null}else if(!Dt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Ue,methods:{one:{termMethods:Et,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Yt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Xt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let rn=[],an=0;for(;an<64;)rn[an]=0|4294967296*Math.sin(++an%Math.PI);function on(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(an=i=0;an>4]+rn[i]+~~o[an|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},sn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&cn[o]&&(a[o]=cn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn,pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const mn="";var gn={green:e=>""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(gn.blue("\n ──────")),t.forEach(e=>{console.log(gn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=gn.blue(" │ ")+gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return gn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${gn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const yn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},En=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Nn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},In={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:En,splitAll:Nn}}},Tn=function(e,t){let n=e.concat(t),r=En(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>xn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Dn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>xn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Vn={union:function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Vn.and=Vn.union,Vn.intersection=function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.not=function(e){e=Cn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.difference=Vn.not,Vn.complement=function(){let e=this.all(),t=Gn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Vn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Tn(e,[t])}),e=On(e,this.document),this.update(e)};var Bn={methods:In,api:function(e){Object.assign(e.prototype,Vn)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var $n=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Fn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Sn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Hn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=$n(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Fn(a,t.hooks);return o=Sn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Hn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Wn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},qn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Wn.test(t))!function(e,t,n,r){let a=t.split(Wn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),qn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,r))};var Un=Kn,Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),er=e=>(e=e||"").trim(),tr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||_n.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Zn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Qn),t);var t},nr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Yn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},rr=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ar={text:nr,txt:nr,array:rr,flat:rr},or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(nr(e,!0)),null):ar.hasOwnProperty(t)?ar[t](e):e},ir=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=er(e),!sr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(er(e),t)),this;e=er(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=er(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ir(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ir(this.json),or(this.json,e)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(e){let t=tr(e);return new g$1(t)};lr.prototype.plugin=function(e){e(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(e){if(ur.hasOwnProperty(e.id))return ur[e.id];if(ur.hasOwnProperty(e.is))return ur[e.is];let t=e._cache.parents.find(e=>ur[e]);return ur[t]};var hr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:cr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const dr=function(e){return e?"string"==typeof e?[e]:e:[]};var pr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=dr(e[t].children),e[t].not=dr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},mr={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=pr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return lr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return hr(n)}}};const gr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),gr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return gr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},br=function(e){Object.assign(e.prototype,fr)},vr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const yr=new Set(["Auxiliary","Possessive"]);var wr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(yr.has(e)||!t.hasOwnProperty(n))return 1;if(yr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:mr,api:br,lib:vr};const Pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Ar=function(e){let t=[],n=e.split(kr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Mr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Lr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Kr=/^'[0-9]{2}/;var Ur=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Mr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!qr.test(e)?"'"===n&&Kr.test(e)?(n="",t):"":(n="",t)))).replace(Lr,a=>(r=a,Wr.test(a)&&/[sn]['’]$/.test(t)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Rr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Qr=/([A-Z]\.)+[A-Z]?,?$/,_r=/^[A-Z]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(e){return function(e){return!0===Qr.test(e)||!0===Yr.test(e)||!0===_r.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ea=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Rr(r),r=n(r,t),r=Xr(r),e.normal=r},ta={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Dr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Sr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=zr(n),n=Vr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ur(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ea(e,t)}),n})}}}},na={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ra={},aa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ra[t]=!0,aa[t]="Abbreviation",void 0!==e[1]&&(aa[t]=[aa[t],e[1]])})});var oa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ia={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},sa={};Object.keys(ia).forEach((function(e){ia[e].split("").forEach((function(t){sa[t]=e}))}));const la=/\//,ua=/[a-z]\.[a-z]/i,ca=/[0-9]/;var ha=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),la.test(n)&&!ua.test(n)&&!ca.test(n)){let t=n.split(la);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const da=/^\p{Letter}+-\p{Letter}+$/u;var pa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),da.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ma=function(e){let t=0,n=0,r=e.document;for(let e=0;ega(e,ha),machine:e=>ga(e,pa),normal:e=>ga(e,ea),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ya={safe:!0,min:3};var wa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ba},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ya,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(jn),m.extend(Jt),m.extend(Bn),m.extend(wr),m.plugin(we),m.extend(fa),m.plugin(f),m.extend(Ce),m.extend(wa),m.extend(xe),m.extend(Ln);var Pa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ka={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Aa=36,ja="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xa=ja.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ea=function(e){if(void 0!==xa[e])return xa[e];let t=0,n=1,r=Aa,a=1;for(;n=0;n--,a*=Aa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Na=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ta(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ga(ka[e]);Va.test(e)?Object.keys(t).forEach(t=>{if(za[t]=e,"Noun|Verb"===e){let e=Oa(t,$a);za[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ba[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ba[e]="Emoticon"),delete Ba[""],delete Ba.null,delete Ba[" "];const Fa="Adjective";var Sa={beforeTags:{Determiner:Fa,Possessive:Fa},afterTags:{Adjective:Fa},beforeWords:{seem:Fa,seemed:Fa,seems:Fa,feel:Fa,feels:Fa,felt:Fa,appear:Fa,appears:Fa,appeared:Fa,also:Fa,over:Fa,under:Fa,too:Fa,it:Fa,but:Fa,still:Fa,really:Fa,quite:Fa,well:Fa,very:Fa,deeply:Fa,profoundly:Fa,extremely:Fa,so:Fa,badly:Fa,mostly:Fa,totally:Fa,awfully:Fa,rather:Fa,nothing:Fa,something:Fa,anything:Fa},afterWords:{too:Fa,also:Fa,or:Fa}};const Ha="Gerund";var Ma={beforeTags:{Adverb:Ha,Preposition:Ha,Conjunction:Ha},afterTags:{Adverb:Ha,Possessive:Ha,Person:Ha,Pronoun:Ha,Determiner:Ha,Copula:Ha,Preposition:Ha,Conjunction:Ha,Comparative:Ha},beforeWords:{been:Ha,keep:Ha,continue:Ha,stop:Ha,am:Ha,be:Ha,me:Ha,began:Ha,start:Ha,starts:Ha,started:Ha,stops:Ha,stopped:Ha,help:Ha,helps:Ha,avoid:Ha,avoids:Ha,love:Ha,loves:Ha,loved:Ha,hate:Ha,hates:Ha,hated:Ha},afterWords:{you:Ha,me:Ha,her:Ha,him:Ha,them:Ha,their:Ha,it:Ha,this:Ha,there:Ha,on:Ha,about:Ha,for:Ha}},La={beforeTags:Object.assign({},Sa.beforeTags,Ma.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Sa.afterTags,Ma.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Sa.beforeWords,Ma.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Sa.afterWords,Ma.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wa="Singular";var Ja={beforeTags:{Determiner:Wa,Possessive:Wa,Acronym:Wa,Noun:Wa,Adjective:Wa,PresentTense:Wa,Gerund:Wa,PastTense:Wa,Infinitive:Wa,Date:Wa},afterTags:{Value:Wa,Modal:Wa,Copula:Wa,PresentTense:Wa,PastTense:Wa,Demonym:Wa},beforeWords:{the:Wa,with:Wa,without:Wa,of:Wa,for:Wa,any:Wa,all:Wa,on:Wa,cut:Wa,cuts:Wa,save:Wa,saved:Wa,saves:Wa,make:Wa,makes:Wa,made:Wa,minus:Wa,plus:Wa,than:Wa,another:Wa,versus:Wa,neither:Wa,favorite:Wa,best:Wa,daily:Wa,weekly:Wa,linear:Wa,binary:Wa,mobile:Wa,lexical:Wa,technical:Wa,computer:Wa,scientific:Wa,formal:Wa},afterWords:{of:Wa,system:Wa,aid:Wa,method:Wa,utility:Wa,tool:Wa,reform:Wa,therapy:Wa,philosophy:Wa,room:Wa,authority:Wa,says:Wa,said:Wa,wants:Wa,wanted:Wa}};const qa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ka={beforeTags:Object.assign({},Sa.beforeTags,Ja.beforeTags,qa.beforeTags),afterTags:Object.assign({},Sa.afterTags,Ja.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Ja.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Ja.afterWords)};const Ua={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ra={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Qa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},_a={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Za={beforeTags:Object.assign({},Sa.beforeTags,Ua),afterTags:Object.assign({},Sa.afterTags,Ra),beforeWords:Object.assign({},Sa.beforeWords,Qa),afterWords:Object.assign({},Sa.afterWords,_a)};const Ya="Infinitive";var Xa={beforeTags:{Modal:Ya,Adverb:Ya,Negative:Ya,Plural:Ya},afterTags:{Determiner:Ya,Adverb:Ya,Possessive:Ya,Preposition:Ya},beforeWords:{i:Ya,we:Ya,you:Ya,they:Ya,to:Ya,please:Ya,will:Ya,have:Ya,had:Ya,would:Ya,could:Ya,should:Ya,do:Ya,did:Ya,does:Ya,can:Ya,must:Ya,us:Ya,me:Ya,he:Ya,she:Ya,it:Ya,being:Ya},afterWords:{the:Ya,me:Ya,you:Ya,him:Ya,her:Ya,them:Ya,it:Ya,a:Ya,an:Ya,up:Ya,down:Ya,by:Ya,out:Ya,off:Ya,under:Ya,when:Ya,all:Ya,to:Ya,because:Ya,although:Ya,before:Ya,how:Ya,otherwise:Ya,together:Ya,though:Ya,yet:Ya}};const eo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var to={beforeTags:Object.assign({},Sa.beforeTags,Xa.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Sa.afterTags,Xa.afterTags,eo.afterTags),beforeWords:Object.assign({},Sa.beforeWords,Xa.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sa.afterWords,Xa.afterWords,{to:void 0})};const no={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ro={},ao={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var io={beforeTags:Object.assign({},Ma.beforeTags,Ja.beforeTags,no),afterTags:Object.assign({},Ma.afterTags,Ja.afterTags,ro),beforeWords:Object.assign({},Ma.beforeWords,Ja.beforeWords,ao),afterWords:Object.assign({},Ma.afterWords,Ja.afterWords,oo)},so={beforeTags:Object.assign({},Xa.beforeTags,Ja.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xa.afterTags,Ja.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xa.beforeWords,Ja.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xa.afterWords,Ja.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const lo="Person";var uo={beforeTags:{Honorific:lo,Person:lo,Preposition:lo},afterTags:{Person:lo,ProperNoun:lo,Verb:lo},ownTags:{ProperNoun:lo},beforeWords:{hi:lo,hey:lo,yo:lo,dear:lo,hello:lo},afterWords:{said:lo,says:lo,told:lo,tells:lo,feels:lo,felt:lo,seems:lo,thinks:lo,thought:lo,spends:lo,spendt:lo,plays:lo,played:lo,sing:lo,sang:lo,learn:lo,learned:lo,wants:lo,wanted:lo}};const co="Month",ho={beforeTags:{Date:co,Value:co},afterTags:{Date:co,Value:co},beforeWords:{by:co,in:co,on:co,during:co,after:co,before:co,between:co,until:co,til:co,sometime:co,of:co,this:co,next:co,last:co,previous:co,following:co},afterWords:{sometime:co,in:co,of:co,until:co,the:co}};var po={beforeTags:Object.assign({},uo.beforeTags,ho.beforeTags),afterTags:Object.assign({},uo.afterTags,ho.afterTags),beforeWords:Object.assign({},uo.beforeWords,ho.beforeWords),afterWords:Object.assign({},uo.afterWords,ho.afterWords)};const mo={Place:"Place"},go={Place:"Place",Abbreviation:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vo="Unit";const yo={"Adj|Gerund":La,"Adj|Noun":Ka,"Adj|Past":Za,"Adj|Present":to,"Noun|Verb":so,"Noun|Gerund":io,"Person|Noun":{beforeTags:Object.assign({},Ja.beforeTags,uo.beforeTags),afterTags:Object.assign({},Ja.afterTags,uo.afterTags),beforeWords:Object.assign({},Ja.beforeWords,uo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ja.afterWords,uo.afterWords)},"Person|Date":po,"Person|Verb":{beforeTags:Object.assign({},uo.beforeTags,Xa.beforeTags),afterTags:Object.assign({},uo.afterTags,Xa.afterTags),beforeWords:Object.assign({},uo.beforeWords,Xa.beforeWords),afterWords:Object.assign({},uo.afterWords,Xa.afterWords)},"Person|Place":{beforeTags:Object.assign({},mo,uo.beforeTags),afterTags:Object.assign({},go,uo.afterTags),beforeWords:Object.assign({},fo,uo.beforeWords),afterWords:Object.assign({},bo,uo.afterWords)},"Unit|Noun":{beforeTags:{Value:vo},afterTags:{},beforeWords:{per:vo,every:vo,each:vo,square:vo,cubic:vo,sq:vo,metric:vo},afterWords:{per:vo,squared:vo,cubed:vo,long:vo}}},wo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};yo["Plural|Verb"]={beforeWords:wo(yo["Noun|Verb"].beforeWords,{}),afterWords:wo(yo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wo(yo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wo(yo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Po=yo;const ko="Adjective",Ao="Infinitive",jo="PresentTense",xo="Singular",Eo="PastTense",No="Adverb",Io="Plural",To="Actor",Go="Verb",Do="Noun",Co="LastName",Oo="Modal",Vo="Participle";var Bo=[null,null,{ea:xo,ia:Do,ic:ko,ly:No,"'n":Go,"'t":Go},{oed:Eo,ued:Eo,xed:Eo," so":No,"'ll":Oo,"'re":"Copula",azy:ko,eer:Do,end:Go,ped:Eo,ffy:ko,ify:Ao,ing:"Gerund",ize:Ao,ibe:Ao,lar:ko,mum:ko,nes:jo,nny:ko,ous:ko,que:ko,rol:xo,sis:xo,ogy:xo,oid:xo,ian:xo,zes:jo,eld:Eo,ken:Vo,ven:Vo,ten:Vo,ect:Ao,ict:Ao,ign:Ao,ful:ko,bal:ko},{amed:Eo,aped:Eo,ched:Eo,lked:Eo,rked:Eo,reed:Eo,nded:Eo,mned:ko,cted:Eo,dged:Eo,ield:xo,akis:Co,cede:Ao,chuk:Co,czyk:Co,ects:jo,ends:Go,enko:Co,ette:xo,wner:xo,fies:jo,fore:No,gate:Ao,gone:ko,ices:Io,ints:Io,ruct:Ao,ines:Io,ions:Io,less:ko,llen:ko,made:ko,nsen:Co,oses:jo,ould:Oo,some:ko,sson:Co,tion:xo,tage:Do,ique:xo,tive:ko,tors:Do,vice:xo,lier:xo,fier:xo,wned:Eo,gent:xo,tist:xo,pist:xo,rist:xo,mist:xo,yist:xo,vist:xo,lite:xo,site:xo,rite:xo,mite:xo,bite:xo,mate:xo,date:xo,ndal:xo,vent:xo,uist:xo,gist:xo,note:xo,cide:xo,wide:ko,vide:Ao,ract:Ao,duce:Ao,pose:Ao,eive:Ao,lyze:Ao,lyse:Ao,iant:ko,nary:ko},{elist:xo,holic:xo,phite:xo,tized:Eo,urned:Eo,eased:Eo,ances:Io,bound:ko,ettes:Io,fully:No,ishes:jo,ities:Io,marek:Co,nssen:Co,ology:Do,osome:xo,tment:xo,ports:Io,rough:ko,tches:jo,tieth:"Ordinal",tures:Io,wards:No,where:No,archy:Do,pathy:Do,opoly:Do,embly:Do,phate:Do,ndent:xo,scent:xo,onist:xo,anist:xo,alist:xo,olist:xo,icist:xo,ounce:Ao,iable:ko,borne:ko,gnant:ko,inant:ko,igent:ko,atory:ko,rient:xo,dient:xo},{auskas:Co,parent:xo,cedent:xo,ionary:xo,cklist:xo,keeper:To,logist:To,teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const zo="Adjective",$o="Noun",Fo="Verb";var So=[null,null,{},{neo:$o,bio:$o,"de-":Fo,"re-":Fo,"un-":Fo},{anti:$o,auto:$o,faux:zo,hexa:$o,kilo:$o,mono:$o,nano:$o,octa:$o,poly:$o,semi:zo,tele:$o,"pro-":zo,"mis-":Fo,"dis-":Fo,"pre-":zo},{anglo:$o,centi:$o,ethno:$o,ferro:$o,grand:$o,hepta:$o,hydro:$o,intro:$o,macro:$o,micro:$o,milli:$o,nitro:$o,penta:$o,quasi:zo,radio:$o,tetra:$o,"omni-":zo,"post-":zo},{pseudo:zo,"extra-":zo,"hyper-":zo,"inter-":zo,"intra-":zo,"deca-":zo},{electro:$o}];const Ho="Adjective",Mo="Infinitive",Lo="PresentTense",Wo="Singular",Jo="PastTense",qo="Adverb",Ko="Expression",Uo="Actor",Ro="Verb",Qo="Noun",_o="LastName";var Zo={a:[[/.[aeiou]na$/,Qo,"tuna"],[/.[oau][wvl]ska$/,_o],[/.[^aeiou]ica$/,Wo,"harmonica"],[/^([hyj]a+)+$/,Ko,"haha"]],c:[[/.[^aeiou]ic$/,Ho]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Jo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Jo,"rammed"],[/.[aeiou][sg]hed$/,Jo,"gushed"],[/.[aeiou]red$/,Jo,"hired"],[/.[aeiou]r?ried$/,Jo,"hurried"],[/[^aeiou]ard$/,Wo,"steward"],[/[aeiou][^aeiou]id$/,Ho,""],[/.[vrl]id$/,Ho,"livid"],[/..led$/,Jo,"hurled"],[/.[iao]sed$/,Jo,""],[/[aeiou]n?[cs]ed$/,Jo,""],[/[aeiou][rl]?[mnf]ed$/,Jo,""],[/[aeiou][ns]?c?ked$/,Jo,"bunked"],[/[aeiou]gned$/,Jo],[/[aeiou][nl]?ged$/,Jo],[/.[tdbwxyz]ed$/,Jo],[/[^aeiou][aeiou][tvx]ed$/,Jo],[/.[cdflmnprstv]ied$/,Jo,"emptied"]],e:[[/.[lnr]ize$/,Mo,"antagonize"],[/.[^aeiou]ise$/,Mo,"antagonise"],[/.[aeiou]te$/,Mo,"bite"],[/.[^aeiou][ai]ble$/,Ho,"fixable"],[/.[^aeiou]eable$/,Ho,"maleable"],[/.[ts]ive$/,Ho,"festive"],[/[a-z]-like$/,Ho,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ho,"cornish"],[/.v[iy]ch$/,_o,"..ovich"],[/^ug?h+$/,Ko,"ughh"],[/^uh[ -]?oh$/,Ko,"uhoh"],[/[a-z]-ish$/,Ho,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,_o,"polish-male"]],k:[[/^(k){2}$/,Ko,"kkkk"]],l:[[/.[gl]ial$/,Ho,"familial"],[/.[^aeiou]ful$/,Ho,"fitful"],[/.[nrtumcd]al$/,Ho,"natal"],[/.[^aeiou][ei]al$/,Ho,"familial"]],m:[[/.[^aeiou]ium$/,Wo,"magnesium"],[/[^aeiou]ism$/,Wo,"schism"],[/^[hu]m+$/,Ko,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ho,"republican"],[/[^aeiou]ician$/,Uo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ko,"noooo"],[/^(yo)+$/,Ko,"yoo"],[/^wo{2,}[pt]?$/,Ko,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Wo],[/[^i]fer$/,Mo],[/.[^aeiou][ao]pher$/,Uo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ho],[/[aeiou].*ist$/,Ho],[/^[a-z]et$/,Ro]],s:[[/.[^aeiou]ises$/,Lo],[/.[rln]ates$/,Lo],[/.[^z]ens$/,Ro],[/.[lstrn]us$/,Wo],[/.[aeiou]sks$/,Lo],[/.[aeiou]kes$/,Lo],[/[aeiou][^aeiou]is$/,Wo],[/[a-z]'s$/,Qo],[/^yes+$/,Ko]],v:[[/.[^aeiou][ai][kln]ov$/,_o]],y:[[/.[cts]hy$/,Ho],[/.[st]ty$/,Ho],[/.[tnl]ary$/,Ho],[/.[oe]ry$/,Wo],[/[rdntkbhs]ly$/,qo],[/.(gg|bb|zz)ly$/,Ho],[/...lly$/,qo],[/.[gk]y$/,Ho],[/[bszmp]{2}y$/,Ho],[/.[ai]my$/,Ho],[/[ea]{2}zy$/,Ho],[/.[^aeiou]ity$/,Wo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ri={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ai={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ii);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ii,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},di=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const pi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),mi=hi(ai),gi=hi(ni),fi=hi(ri),bi=di(pi),vi=di(mi),yi=di(gi),wi=di(fi),Pi=hi(ti),ki=hi(oi);var Ai={fromPast:pi,fromPresent:mi,fromGerund:gi,fromParticiple:fi,toPast:bi,toPresent:vi,toGerund:yi,toParticiple:wi,toComparative:Pi,toSuperlative:ki,fromComparative:di(Pi),fromSuperlative:di(ki)},ji=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),xi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Ei=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ni[t].forEach(n=>e[n]=t),e),{});var Ii=Ni,Ti=function(e){let t=e.substring(e.length-3);if(!0===Ii.hasOwnProperty(t))return Ii[t];let n=e.substring(e.length-2);return!0===Ii.hasOwnProperty(n)?Ii[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Gi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ti(e)),Gi.hasOwnProperty(e))c=Gi[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,r);else if("PresentTense"===n)c=si(l,a);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ci=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,r),Gerund:si(i,a),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Oi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Vi="ically",Bi=new Set(["analyt"+Vi,"chem"+Vi,"class"+Vi,"clin"+Vi,"crit"+Vi,"ecolog"+Vi,"electr"+Vi,"empir"+Vi,"frant"+Vi,"grammat"+Vi,"ident"+Vi,"ideolog"+Vi,"log"+Vi,"mag"+Vi,"mathemat"+Vi,"mechan"+Vi,"med"+Vi,"method"+Vi,"method"+Vi,"mus"+Vi,"phys"+Vi,"phys"+Vi,"polit"+Vi,"pract"+Vi,"rad"+Vi,"satir"+Vi,"statist"+Vi,"techn"+Vi,"technolog"+Vi,"theoret"+Vi,"typ"+Vi,"vert"+Vi,"whims"+Vi]),zi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],$i=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Fi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?Bi.has(e)?e.replace(/ically/,"ical"):$i.has(e)?null:Fi.hasOwnProperty(e)?Fi[e]:Oi(e,zi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Mi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Li=function(e){if(Mi.hasOwnProperty(e))return Mi[e];let t=Oi(e,Hi);return t||e+"ly"};const Wi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ji={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},qi=new Set(["terrible","annoying"]),Ki=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Qi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Oa,nounToSingular:Ei,verbToInfinitive:Di,getTense:Ti,verbConjugate:Ci,adjToSuperlative:Ki,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Li,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(qi.has(e))return null;let t=Oi(e,Wi);return t||e+"ness"}}}},_i=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Zi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(r,"Infinitive","Verb"),Object.assign(s,l),l=Zi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zi(o,"Adjective","Superlative"),Object.assign(s,l),l=Zi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:Qi};let{lex:r,_multi:a}=Qi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ns=function(e,t,n){let r=Ci(e,Xi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(a,r,!1),"Adj|Present"===o&&(ns(a,r,!0),function(e,t,n){let r=Ki(e,n);t[r]=t[r]||"Superlative";let a=Ui(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(a,Xi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(a,Xi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let as={one:{_multiCache:{},lexicon:Ba},two:{irregularPlurals:Pa,models:Ai,suffixPatterns:Bo,prefixPatterns:So,endsWith:Zo,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:za,clues:Po,uncountable:{},orgWords:ji}};as=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=rs(e.two.switches,e),e=Yi(e),e=_i(e)}(as);var os=as;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(is.test(a.normal)){let e=a.normal.replace(is,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ls=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const ps=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ms=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ti(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(r)};const gs=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,bs=["Date","Month","WeekDay","Unit"],vs=/^[IVXLCDM]{2,}$/,ys=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Ps=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===gs.test(o)&&!1===fs.test(o)?bs.find(e=>r.tags.has(e))?null:(ms(e,t,n),r.tags.has("Noun")||r.tags.clear(),ls(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&vs.test(o)&&ys.test(o)&&!ws[r.normal]?(ls(r,"RomanNumeral","2-xvii"),!0):null};const ks=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var As=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ks(r.normal,n.two.suffixPatterns);if(null!==e)return ls(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ks(r.implicit,n.two.suffixPatterns),null!==e))return ls(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const js=/['‘’‛‵′`´]/,xs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ls(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Is=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ts=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Is.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Gs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ds=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ts(a)||Ts(o))return ls(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Gs(a)||Gs(o))return ls(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return ls(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Vs=/^[A-Z-]+$/,Bs=/([A-Z]\.)+[A-Z]?,?$/,zs=/[A-Z]{2,}('s|,)?$/,$s=/([a-z]\.)+[a-z]\.?$/,Fs={I:!0,A:!0};var Ss=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Vs.test(n)||n.length>5||Fs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Bs.test(n)&&!0!==$s.test(n)&&!0!==Os.test(n)&&!0!==zs.test(n))}(r,n)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Fs.hasOwnProperty(r.text)&&Os.test(r.text)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ls(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Vs.test(r.text)&&r.text.length<=6?(ls(r,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ms=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ls=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],a),l=l||Hs(e[t+1],o),l=l||Ms(e[t-1],r),l=l||Ms(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ms(e,t,n),e[t].confidence=.2,!0}return null};const Ws=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Js=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ws(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ws(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},qs=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ms(e,t,n),e[t].confidence=.1)};const Ks=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>Ks(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t&&Ks(e,t)};const Qs="undefined"!=typeof process&&process.env?process.env:self.env||{},_s=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Qs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ys=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Qs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Es,checkCase:Ps,checkPrefix:Ns,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Ls,orgWords:Js,nounFallback:qs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(_s.test(l)&&!o[l]&&(l=l.replace(_s,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Zs(e[t+1],n.afterWords);return o=o||Zs(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,a),o=o||Ys(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Rs[o]&&(u=Rs[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Qs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},al={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vl=/'/;var yl=function(e,t){let n=e[t].normal.split(vl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Pl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},kl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(Pl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===kl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const jl=/'/,xl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},El={d:(e,t)=>yl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bl(e,t)},Nl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Il={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===jl.test(r[o].normal)&&([,i]=r[o].normal.split(jl));let s=null;El.hasOwnProperty(i)&&(s=El[i](r,o,t)),s&&(s=Nl(s,e),gl(n,[a,o],s),xl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ml.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=pl},hooks:["contractionTwo"]};const Tl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Gl=["i","we","they"];let Dl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Tl+" #Person",tag:"Person",reason:"randy-smith"},{match:Tl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Tl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Cl=Cl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Dl}},hooks:["postTagger"]},Vl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Bl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Vl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},zl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},$l=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?zl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Fl={api:function(e){e.prototype.swap=$l}};m.plugin(cl),m.plugin(Il),m.plugin(Ol),m.plugin(Bl),m.plugin(Fl);var Sl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Hl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ml={this:"Noun",then:"Pivot"};var Ll=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},_l={compute:{chunks:function(e){const{document:t,world:n}=e;Ll(t),Wl(t),Kl(e,t,n),Rl(t),Ql(t)}},api:function(e){e.prototype.chunks=Hl,e.prototype.clauses=Sl},hooks:["chunks"]};const Zl=/'s$/;var Yl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Xl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Xl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const ru={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},au=RegExp("("+Object.keys(ru).join("|")+")"),ou=RegExp("("+Object.values(ru).join("|")+")"),iu=function(e,t){const n=e[t].pre.match(au)[0]||"";if(!n||!ru[n])return null;const r=ru[n];for(;t{e[0].pre=e[0].pre.replace(au,"");let t=e[e.length-1];t.post=t.post.replace(ou,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const lu=/\./g;var uu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},cu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const hu=(e,t)=>"number"==typeof t?e.eq(t):e,du=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var pu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=du(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=hu(t,e),new Adjectives(t.document,t.pointer)}};const mu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},gu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let fu=[["emojis","emoji"],["atmentions","atMentions"]];var bu=function(e){gu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=mu,fu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},vu={api:function(e){bu(e),Yl(e),nu(e),su(e),pu(e),cu(e),uu(e)}};const yu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var wu={case:e=>{yu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;yu(e,e=>e.text=n(e.text,t))},whitespace:e=>{yu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{yu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Pu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),ku="unicode|punctuation|whitespace|acronyms",Au="|case|contractions|parentheses|quotations|emoji|honorifics",ju={light:Pu(ku),medium:Pu(ku+Au),heavy:Pu(ku+Au+"|possessives|adverbs|nouns|verbs")};var xu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ju[e]),Object.keys(e).forEach(t=>{wu.hasOwnProperty(t)&&wu[t](this,e[t])}),this}}},Eu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Nu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Iu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Gu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Tu(e,t),isSubordinate:Iu(e),root:t}};const Du=e=>e.text(),Cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Ou=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Vu=function(e){let t=Gu(e);return{root:Du(t.root),number:Ou(t.number),determiner:Du(t.determiner),adjectives:Cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Bu={tags:!0};var zu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Bu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Bu),e};const $u={tags:!0};var Fu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,$u).tag("Singular","toPlural"),e};const Su=(e,t)=>"number"==typeof t?e.eq(t):e;var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Su(this,e).map(Gu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Vu(t)),n},[])}isPlural(e){let t=this.filter(e=>Gu(e).isPlural);return Su(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Gu(e).adjectives;n.found&&(t=t.concat(n))}),Su(t,e)}toPlural(e){return Su(this,e).map(e=>zu(e,Gu(e)))}toSingular(e){return Su(this,e).map(e=>{let t=Gu(e);return Fu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Eu(this);return t=Su(t,e),new Nouns(this.document,t.pointer)}}},Mu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Lu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Wu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Wu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Wu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},qu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Uu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ru={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Qu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var _u=function(e){if(!0===Ru.hasOwnProperty(e))return Ru[e];if("a"===e||"an"===e)return 1;const t=Lu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Yu(n),r=Yu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Yu(n);let a=r.text("reduced");return Zu.test(a)&&(a=a.replace(Zu,""),r=r.replaceWith(a)),r=Xu.hasOwnProperty(a)?Xu[a]:Yu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:Yu(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},tc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const nc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],rc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ac=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],oc=function(e){let t=[];if(e>100)return t;for(let n=0;n=nc[n][1]&&(e-=nc[n][1],t.push(nc[n][0]));return rc[e]&&t.push(rc[e]),t};var ic=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=tc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ac.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(oc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=tc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},sc=function(e){return e.numerator&&e.denominator?`${ic({num:e.numerator})} out of ${ic({num:e.denominator})}`:""};const lc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var uc=e=>{let t=ic(e).split(" "),n=t[t.length-1];return lc.hasOwnProperty(n)?t[t.length-1]=lc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},cc=function(e){if(!e.numerator||!e.denominator)return"";let t=ic({num:e.numerator}),n=uc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return hc(this,e).map(ec)}get(e){return hc(this,e).map(ec)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(t);return n.fraction=r,n},[])}toDecimal(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return hc(this,e).forEach(e=>{let t=ec(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=cc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=sc(t);e.replaceWith(n)}),this}toPercentage(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Mu(this);return t=hc(t,e),new Fractions(this.document,t.pointer)}};const pc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var mc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+pc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+pc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+pc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+pc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${pc})`),r=e.has("("+pc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+pc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+pc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},gc=function(e){if("string"==typeof e)return{num:_u(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=ec(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=_u(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},fc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=tc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const bc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},vc={"%":"percent","°":"degrees"};var yc=function(e){let t={suffix:"",prefix:e.prefix};return bc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+bc[e.prefix],t.prefix=""),vc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+vc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},wc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=yc(e);return t+uc(e)+n}if("Ordinal"===t)return e.prefix+fc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=yc(e);return t+ic(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e;var kc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Pc(this,e).map(gc)}get(e){return Pc(this,e).map(gc).map(e=>e.num)}json(e){return Pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=gc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=gc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=wc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=gc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=wc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>gc(t).num===e)}greaterThan(e){return this.filter(t=>gc(t).num>e)}lessThan(e){return this.filter(t=>gc(t).num{let r=gc(n).num;return r>e&&r{let n=gc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=gc(e).num);let t=this.map(t=>{let n=gc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=mc(this);return t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=mc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Pc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Ac={api:function(e){dc(e),kc(e)}};const jc={people:!0,emails:!0,phoneNumbers:!0,places:!0},xc=function(e={}){return!1!==(e=Object.assign({},jc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Ec={api:function(e){e.prototype.redact=xc}},Nc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Ic=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Tc=function(e){let t=e.clauses(),n=Ic(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Gc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Cc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},Oc=function(e){return e.verbs().toInfinitive(),e};const Vc=(e,t)=>"number"==typeof t?e.eq(t):e;var Bc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Tc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Vc(this,e).map(e=>(Tc(e),Gc(e)))}toPresentTense(e){return Vc(this,e).map(e=>(Tc(e),Dc(e)))}toFutureTense(e){return Vc(this,e).map(e=>(Tc(e),e=Cc(e)))}toInfinitive(e){return Vc(this,e).map(e=>(Tc(e),Oc(e)))}toNegative(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Vc(this,e).map(e=>(Tc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Vc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Vc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Vc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Nc(this);return Vc(t,e)}};Object.assign(e.prototype,t)}},zc=function(e){return e.match("#Honorific+? #Person+")},$c=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Fc="male",Sc="female",Hc={mr:Fc,mrs:Sc,miss:Sc,madam:Sc,king:Fc,queen:Sc,duke:Fc,duchess:Sc,baron:Fc,baroness:Sc,count:Fc,countess:Sc,prince:Fc,princess:Sc,sire:Fc,dame:Sc,lady:Sc,ayatullah:Fc,congressman:Fc,congresswoman:Sc,"first lady":Sc,mx:null};var Mc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Sc;if(n.has("#MaleName"))return Fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Hc.hasOwnProperty(e))return Hc[e];if(/^her /.test(e))return Sc;if(/^his /.test(e))return Fc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Fc;if(n&&!t)return Sc}return null};const Lc=(e,t)=>"number"==typeof t?e.eq(t):e;var Wc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Lc(this,e).map($c)}json(e){return Lc(this,e).map(t=>{let n=t.toView().json(e)[0],r=$c(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Mc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=zc(this);return t=Lc(t,e),new People(this.document,t.pointer)}},Jc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},qc=function(e){e.prototype.places=function(t){let n=Jc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Kc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Uc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Rc=function(e){e.prototype.topics=Uc},Qc={api:function(e){Wc(e),qc(e),Kc(e),Rc(e)}},_c=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Zc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},Yc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Xc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},eh=function(e){return e.match("#Negative")},th=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var nh=function(e){let t=e.clone();t.contractions().expand();const n=Zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Yc(t,n),auxiliary:Xc(t,n),negative:eh(t),phrasal:th(n)}};const rh={tense:"PresentTense"},ah={conditional:!0},oh={tense:"FutureTense"},ih={progressive:!0},sh={tense:"PastTense"},lh={complete:!0,progressive:!1},uh={passive:!0},ch=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},hh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[rh]],["^wanted to #Infinitive$",[sh]],["^will want to #Infinitive$",[oh]]],"gerund-phrase":[["^#PastTense #Gerund$",[sh]],["^#PresentTense #Gerund$",[rh]],["^#Infinitive #Gerund$",[rh]],["^will #Infinitive #Gerund$",[oh]],["^have #PastTense #Gerund$",[sh]],["^will have #PastTense #Gerund$",[sh]]],"simple-present":[["^#PresentTense$",[rh]],["^#Infinitive$",[rh]]],"simple-past":[["^#PastTense$",[sh]]],"simple-future":[["^will #Adverb? #Infinitive",[oh]]],"present-progressive":[["^(is|are|am) #Gerund$",[rh,ih]]],"past-progressive":[["^(was|were) #Gerund$",[sh,ih]]],"future-progressive":[["^will be #Gerund$",[oh,ih]]],"present-perfect":[["^(has|have) #PastTense$",[sh,lh]]],"past-perfect":[["^had #PastTense$",[sh,lh]],["^had #PastTense to #Infinitive",[sh,lh]]],"future-perfect":[["^will have #PastTense$",[oh,lh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[sh,ih]]],"past-perfect-progressive":[["^had been #Gerund$",[sh,ih]]],"future-perfect-progressive":[["^will have been #Gerund$",[oh,ih]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[sh,uh]],["^(was|were) being (#PastTense|#Participle)",[sh,uh]],["^(had|have) been (#PastTense|#Participle)",[sh,uh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[rh,uh]],["^(is|are|am) being (#PastTense|#Participle)",[rh,uh]],["^has been (#PastTense|#Participle)",[rh,uh]]],"passive-future":[["will have been (#PastTense|#Participle)",[oh,uh,ah]],["will be being? (#PastTense|#Participle)",[oh,uh,ah]]],"present-conditional":[["would be #PastTense",[rh,ah]]],"past-conditional":[["would have been #PastTense",[sh,ah]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[oh]]],"auxiliary-past":[["^did #Infinitive$",[sh,{plural:!1}]],["^used to #Infinitive$",[sh,lh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[rh,lh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[sh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let dh=[];Object.keys(hh).map(e=>{hh[e].forEach(t=>{dh.push({name:e,match:t[0],data:ch(t[1])})})});var ph=dh,mh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),gh(r)&&(n.remove(r),r=n.last()),gh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:fh(t,e)}};const vh=e=>e,yh=(e,t)=>{let n=bh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},wh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=bh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Ph=function(e,t){let n=bh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},kh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,kh(e)),r&&e.replace(t.root,r),e},jh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),xh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Eh=function(e){return e&&e.isView?e.text("normal"):""},Nh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,kh(e))};var Ih=function(e){let t=nh(e);e=e.clone().toView();const n=mh(e,t);return{root:t.root.text(),preAdverbs:xh(t.adverbs.pre),postAdverbs:xh(t.adverbs.post),auxiliary:Eh(t.auxiliary),negative:t.negative.found,prefix:Eh(t.prefix),infinitive:Nh(t.root),grammar:n}};const Th={tags:!0};var Gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,kh(r)),i&&e.replace(r,i,Th).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Ph(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Dh={tags:!0},Ch={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,kh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=bh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ch.simple(e,t),e=Ch.noAux(e,t))},hasHad:e=>(e.replace("has","had",Dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),n(o,e.model).Participle}},Oh={infinitive:Ch.simple,"simple-present":Ch.simple,"simple-past":vh,"simple-future":Ch.both,"present-progressive":e=>(e.replace("are","were",Dh),e.replace("(is|are|am)","was",Dh),e),"past-progressive":vh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ch.hasHad,"past-perfect":vh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=jh(e)),e.remove("have"),e),"present-perfect-progressive":Ch.hasHad,"past-perfect-progressive":vh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Dh),e),"passive-past":e=>(e.replace("have","had",Dh),e),"passive-present":e=>(e.replace("(is|are)","was",Dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":vh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Dh),e),"auxiliary-past":vh,"auxiliary-present":e=>(e.replace("(do|does)","did",Dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Dh):(Ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":vh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch.simple(e,t),jh(e),e)};var Vh=function(e,t,n){return Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Bh={tags:!0},zh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=wh(e)),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("PresentTense"),e},$h=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,kh(a)),!1===yh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Bh)).not("#Particle").tag("Gerund"),e},Fh={infinitive:zh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return zh(e,t);{let t=bh(e).subject;if(yh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Bh)}return e},"simple-past":zh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=wh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else zh(e,t),e=e.remove("will");return e},"present-progressive":vh,"past-progressive":(e,t)=>{let n=wh(e);return e.replace("(were|was)",n,Bh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(zh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=bh(e).subject;return yh(e)||n.has("i")?((e=Ah(e,t)).remove("had"),e):(e.replace("had","has",Bh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":vh,"past-perfect-progressive":e=>e.replace("had","has",Bh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=wh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Bh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":vh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":vh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>($h(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Ph(e);return e.replace(t.auxiliary,n),e}return $h(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":vh,"modal-infinitive":vh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,kh(r)),a&&(e=e.replace(t.root,a,Bh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),zh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return yh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Bh),e.remove("will"),e}};var Sh=function(e,t,n){return Fh.hasOwnProperty(n)?((e=Fh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hh={tags:!0},Mh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,kh(r)),o&&(e=e.replace(r,o,Hh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Lh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,kh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Hh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Wh={infinitive:Mh,"simple-present":Mh,"simple-past":Mh,"simple-future":vh,"present-progressive":Lh,"past-progressive":Lh,"future-progressive":vh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":vh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":vh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":vh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":vh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":vh,"modal-past":vh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Mh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jh=function(e,t,n){return e.has("will")||e.has("going to")?e:Wh.hasOwnProperty(n)?((e=Wh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qh={tags:!0};var Kh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,kh(a));let s=r(i,e.model).Gerund;return s&&(s=`${wh(e)} ${s}`,e.replace(a,s,qh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Uh={tags:!0},Rh=function(e,t){let n=Ph(e);return e.prepend(n+" not"),e},Qh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},_h=e=>e.has("(is|was|am|are|will|were|be)"),Zh={"simple-present":(e,t)=>!0===_h(e)?Qh(e):(e=Ah(e,t),e=Rh(e)),"simple-past":(e,t)=>!0===_h(e)?Qh(e):((e=Ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===_h(e)?Qh(e):Rh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Uh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Rh(e)).replace("wants","want",Uh)};var Yh=function(e,t,n){if(e.has("#Negative"))return e;if(Zh.hasOwnProperty(n))return e=Zh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===_h(e)?Qh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Xh=(e,t)=>"number"==typeof t?e.eq(t):e;var ed={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Xh(this,e).map(nh)}json(e,t){return Xh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ih(t),n},[])}subjects(e){return Xh(this,e).map(e=>(nh(e),bh(e).subject))}adverbs(e){return Xh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Xh(this,e).filter(e=>!0!==bh(e).plural)}isPlural(e){return Xh(this,e).filter(e=>!0===bh(e).plural)}isImperative(e){return Xh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Gh(e,t,n.form)})}toPresentTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Sh(e,t,n.form)})}toPastTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Vh(e,t,n.form)})}toFutureTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Jh(e,t,n.form)})}toGerund(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Kh(e,t,n.form)})}conjugate(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Gh(e.clone(),t,n.form).text("normal"),PastTense:Vh(e.clone(),t,n.form).text("normal"),PresentTense:Sh(e.clone(),t,n.form).text("normal"),FutureTense:Jh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Xh(this,e).map(e=>{let t=nh(e),n=mh(e,t);return Yh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=_c(this);return t=Xh(t,e),new Verbs(this.document,t.pointer)}}};return m.plugin(_l),m.plugin(vu),m.plugin(xu),m.plugin(Hu),m.plugin(Ac),m.plugin(Ec),m.plugin(Bc),m.plugin(Qc),m.plugin(ed),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let d=Object.assign({},e);const m=function(e,t){t&&m.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(e,t){const{compute:n}=this._world;t&&m.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(e){return u(e,this._world,s,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},m.version="14.4.0";var p=m;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!b(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||b(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),v(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let r=A(k.toString(36));r+=A(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const E=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},x=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:x(e)?x(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(E(t.update([u]).firstTerm()),P(h,u,d,r)):(E(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(T,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var C=D,O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};B.delete=B.remove;var V=B;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z,F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var M={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),L.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}},q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},G,C,V,$,M,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Q=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const me=/'/,pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===me.test(r[s].normal)&&([l,u]=r[s].normal.split(me));let c=ve(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](r,s)),c?(c=ye(c,e),_(n,[i,s],c),ge(n[i],e,s,c.length)):pe.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),_(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),_(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ee={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},xe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ne=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Te=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Te(e.goNext,void 0),e.failTo=Te(e.failTo,0),e.endAs=Te(e.endAs,null),e};const Ce={buildTrie:function(e){const t=xe(e,this.world());return De(t)}};Ce.compile=Ce.buildTrie;var Oe={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:xe(e,this.world));var r;let a=Ge(this,n,t);return a=a.settle(),a}},lib:Ce};const Be=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Be(n,t),Object.keys(r).forEach(e=>{r[e]=Be(r[e],t)}),{ptrs:n,byGroup:r}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),$e=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,Se=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var He={matchOne:function(e,t,n){const r=this.methods.one;if($e(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if($e(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Se(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if($e(e))return e.fullPointer.length>0;if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if($e(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if($e(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},Le={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},We=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Je=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},qe={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)}};qe.split=qe.splitAfter;var Ke=qe;const Ue=Object.assign({},He,Le,Ke);Ue.lookBehind=Ue.before,Ue.lookBefore=Ue.before,Ue.lookAhead=Ue.after,Ue.lookAfter=Ue.after,Ue.notIf=Ue.ifNo;var Re=function(e){Object.assign(e.prototype,Ue)};const _e=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ze=/ /g,Ye=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Xe=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var et=function(e){let t=e.split(_e),n=[];t.forEach(e=>{Ye(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Xe(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ye(e)?r.push(e):r=r.concat(e.split(Ze))}),r=Xe(r),r};const tt=/\{([0-9]+)?(, *[0-9]*)?\}/,nt=/&&/,rt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),ot=e=>e.charAt(e.length-1),it=e=>e.charAt(0),st=e=>e.substring(1),lt=e=>e.substring(0,e.length-1),ut=function(e){return e=st(e),e=lt(e)},ct=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ot(e)&&(n.end=!0,e=lt(e)),"^"===it(e)&&(n.start=!0,e=st(e)),("["===it(e)||"]"===ot(e))&&(n.group=null,"["===it(e)&&(n.groupStart=!0),"]"===ot(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===it(e))){const t=rt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ot(e)&&(n.greedy=!0,e=lt(e)),"*"!==e&&"*"===ot(e)&&"\\*"!==e&&(n.greedy=!0,e=lt(e)),"?"===ot(e)&&(n.optional=!0,e=lt(e)),"!"===it(e)&&(n.negative=!0,e=st(e)),"~"===it(e)&&"~"===ot(e)&&e.length>2&&(e=ut(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===it(e)&&")"===ot(e)){nt.test(e)?(n.choices=e.split(nt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=st(n.choices[0]);let r=n.choices.length-1;n.choices[r]=lt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ct(e,t))),e=""}if("/"===it(e)&&"/"===ot(e))return e=ut(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===it(e)&&"}"===ot(e)){if(e=ut(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===it(e)&&">"===ot(e))return e=ut(e),n.chunk=at(e),n.greedy=!0,n;if("%"===it(e)&&"%"===ot(e))return e=ut(e),n.switch=e,n}return!0===tt.test(e)&&(e=e.replace(tt,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===it(e)?(n.tag=st(e),n.tag=at(n.tag),n):"@"===it(e)?(n.method=st(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ht=ct;const dt=/[a-z0-9][-–—][a-z]/i;var mt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&dt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},gt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ft=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=et(e);return r=r.map(e=>ht(e,t)),r=mt(r,n),r=pt(r,n),r=gt(r),r};const bt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var vt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Et=(e,t)=>-1!==e.pre.indexOf(t),xt={hasQuote:e=>wt.test(e.pre)||Pt.test(e.post),hasComma:e=>jt(e,","),hasPeriod:e=>!0===jt(e,".")&&!1===jt(e,"..."),hasExclamation:e=>jt(e,"!"),hasQuestionMark:e=>jt(e,"?")||jt(e,"¿"),hasEllipses:e=>jt(e,"..")||jt(e,"…")||Et(e,"..")||Et(e,"…"),hasSemicolon:e=>jt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>At.test(e.post)||At.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};xt.hasQuotation=xt.hasQuote;var Nt=xt;let It=function(){};It=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(yt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Nt[t.method]&&!0===Nt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>It(e,t,n,r)):t.choices.some(t=>It(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var Gt=It;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Dt(e,e.t).length=r-e.t),e.t=r,!0)};const Ot=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Gt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Gt(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Dt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==Gt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},$t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Gt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Gt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ft=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},St=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Ht=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&$t(e),r.implicit&&e.terms[e.t+1]&&St(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ft(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Dt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Lt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Tt(e,a)){if(!0!==Gt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!zt(a))return null;if(!0!==e.optional)return null}else if(!Ht(a))return null}else if(!Ht(a))return null}else if(!Ht(a))return null}else if(!Vt(a))return null}else if(!Bt(a))return null}else if(!Ct(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Wt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Jt=function(e,t,n){let r=Lt(e,t,0,e.length);return r?(r=Wt(r,n),r):null};var qt={api:Re,methods:{one:{termMethods:Nt,parseMatch:ft,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Jt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,Ut=/^#./,Rt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var _t={html:function(e){let{starts:t,ends:n}=Rt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(Zt,""),Xt.test(a)&&(a=" "),a=a.replace(Yt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Zt,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&en.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let an=[],on=0;for(;on<64;)an[on]=0|4294967296*Math.sin(++on%Math.PI);function sn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(on=i=0;on>4]+an[i]+~~o[on|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const ln={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const cn=function(e,t){return Object.assign({},e,t)},hn={text:e=>tn(e,{keepPunct:!0},!1),normal:e=>tn(e,cn(rn.normal,{keepPunct:!0}),!1),implicit:e=>tn(e,cn(rn.implicit,{keepPunct:!0}),!1),machine:e=>tn(e,un,!1),root:e=>tn(e,cn(un,{form:"root"}),!1),hash:e=>sn(tn(e,{keepPunct:!0},!1)),offset:e=>{let t=hn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const dn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},ln,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&hn[o]&&(a[o]=hn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};dn.data=dn.json;var mn=dn,pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const gn="";var fn={green:e=>""+e+gn,red:e=>""+e+gn,blue:e=>""+e+gn,magenta:e=>""+e+gn,cyan:e=>""+e+gn,yellow:e=>""+e+gn,black:e=>""+e+gn,dim:e=>""+e+gn,i:e=>""+e+gn},bn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(fn.blue("\n ──────")),t.forEach(e=>{console.log(fn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=fn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=fn.blue(" │ ")+fn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return fn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},vn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(fn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(fn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(fn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(fn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},yn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${fn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const wn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Pn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},An={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&rn.hasOwnProperty(e)?t=Object.assign({},rn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Nn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var In=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},Gn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Nn,splitAll:In}}},Tn=function(e,t){let n=e.concat(t),r=Nn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>xn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Cn=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>xn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Bn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Vn={union:function(e){e=On(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)}};Vn.and=Vn.union,Vn.intersection=function(e){e=On(e,this);let t=Cn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)},Vn.not=function(e){e=On(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)},Vn.difference=Vn.not,Vn.complement=function(){let e=this.all(),t=Dn(e.fullPointer,this.fullPointer);return t=Bn(t,this.document),this.toView(t)},Vn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Tn(e,[t])}),e=Bn(e,this.document),this.update(e)};var zn={methods:Gn,api:function(e){Object.assign(e.prototype,Vn)}};const $n=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Fn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push($n(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push($n(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=$n(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Sn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},Hn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},Ln=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Fn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Sn(a,t.hooks);return o=Hn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Ln(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Jn=/ /,qn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Kn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Jn.test(t))!function(e,t,n,r){let a=t.split(Jn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Kn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nUn(e,t,n,r))};var Rn=Un,_n=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},er=e=>"[object Array]"===Object.prototype.toString.call(e),tr=e=>(e=e||"").trim(),nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Zn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Yn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Xn(t=e).forEach(Qn),t);var t},rr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Xn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},ar=function(e){let t=Xn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},or={text:rr,txt:rr,array:ar,flat:ar},ir=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(rr(e,!0)),null):or.hasOwnProperty(t)?or[t](e):e},sr=e=>{Xn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},lr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=tr(e),!lr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(er(e))return e.forEach(e=>this.add(tr(e),t)),this;e=tr(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=tr(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Xn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Xn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Xn(this.json)}fillDown(){var e;return e=this.json,Xn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){sr(this.json);let e=Xn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return sr(this.json),ir(this.json,e)}debug(){return sr(this.json),ir(this.json,"debug"),this}}const ur=function(e){let t=nr(e);return new g$1(t)};ur.prototype.plugin=function(e){e(this)};var cr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const hr=function(e){if(cr.hasOwnProperty(e.id))return cr[e.id];if(cr.hasOwnProperty(e.is))return cr[e.is];let t=e._cache.parents.find(e=>cr[e]);return cr[t]};var dr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:hr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const mr=function(e){return e?"string"==typeof e?[e]:e:[]};var pr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=mr(e[t].children),e[t].not=mr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},gr={one:{setTag:Rn,unTag:_n,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=pr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return ur(t).cache().fillDown().out("array")}(Object.assign({},t,e));return dr(n)}}};const fr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var br={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),fr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return fr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},vr=function(e){Object.assign(e.prototype,br)},yr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const wr=new Set(["Auxiliary","Possessive"]);var Pr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(wr.has(e)||!t.hasOwnProperty(n))return 1;if(wr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:gr,api:vr,lib:yr};const kr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Ar=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var jr=function(e){let t=[],n=e.split(Ar);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const Gr=/\S/,Tr=/^\s+/;var Dr=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Gr.test(e))return[];e=e.replace(" "," ");let n=jr(e),r=Nr(n),a=Ir(r,t);if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Lr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Wr=/['’]/,Jr=/^[a-z]\.([a-z]\.)+/i,qr=/^[-+.][0-9]/,Kr=/^'[0-9]{2}/;var Ur=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Lr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!qr.test(e)?"'"===n&&Kr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Wr.test(a)&&/[sn]['’]$/.test(t)&&!1===Wr.test(n)?(r=r.replace(Wr,""),"'"):!0===Jr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},Rr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const _r=/([A-Z]\.)+[A-Z]?,?$/,Qr=/^[A-Z]\.,?$/,Zr=/[A-Z]{2,}('s|,)?$/,Yr=/([a-z]\.)+[a-z]\.?$/;var Xr=function(e){return function(e){return!0===_r.test(e)||!0===Yr.test(e)||!0===Qr.test(e)||!0===Zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ea=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Rr(r),r=n(r,t),r=Xr(r),e.normal=r};const ta=/[ .][A-Z]\.? *$/i,na=/(?:\u2026|\.{2,}) *$/,ra=/\p{L}/u;var aa={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Dr,isSentence:function(e,t){if(!1===ra.test(e))return!1;if(!0===ta.test(e))return!1;if(!0===na.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Sr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=zr(n),n=Br(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ur(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ea(e,t)}),n})}}}},oa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ia={},sa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ia[t]=!0,sa[t]="Abbreviation",void 0!==e[1]&&(sa[t]=[sa[t],e[1]])})});var la=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ua={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ca={};Object.keys(ua).forEach((function(e){ua[e].split("").forEach((function(t){ca[t]=e}))}));const ha=/\//,da=/[a-z]\.[a-z]/i,ma=/[0-9]/;var pa=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ha.test(n)&&!da.test(n)&&!ma.test(n)){let t=n.split(ha);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ga=/^\p{Letter}+-\p{Letter}+$/u;var fa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ga.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ba=function(e){let t=0,n=0,r=e.document;for(let e=0;eva(e,pa),machine:e=>va(e,fa),normal:e=>va(e,ea),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ka={safe:!0,min:3};var Aa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=wa},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ka,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Pa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};p.extend(U),p.extend(En),p.extend(qt),p.extend(zn),p.extend(Pr),p.plugin(we),p.extend(ya),p.plugin(f),p.extend(Oe),p.extend(Aa),p.extend(Ee),p.extend(Wn);var ja={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Ea={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const xa=36,Na="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ia=Na.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ga=function(e){if(void 0!==Ia[e])return Ia[e];let t=0,n=1,r=xa,a=1;for(;n=0;n--,a*=xa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Ta=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ca(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Oa(Ea[e]);$a.test(e)?Object.keys(t).forEach(t=>{if(Sa[t]=e,"Noun|Verb"===e){let e=za(t,Ha);Sa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Fa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Fa[e]="Emoticon"),delete Fa[""],delete Fa.null,delete Fa[" "];const La="Adjective";var Ma={beforeTags:{Determiner:La,Possessive:La},afterTags:{Adjective:La},beforeWords:{seem:La,seemed:La,seems:La,feel:La,feels:La,felt:La,appear:La,appears:La,appeared:La,also:La,over:La,under:La,too:La,it:La,but:La,still:La,really:La,quite:La,well:La,very:La,deeply:La,profoundly:La,extremely:La,so:La,badly:La,mostly:La,totally:La,awfully:La,rather:La,nothing:La,something:La,anything:La,not:La,me:La},afterWords:{too:La,also:La,or:La}};const Wa="Gerund";var Ja={beforeTags:{Adverb:Wa,Preposition:Wa,Conjunction:Wa},afterTags:{Adverb:Wa,Possessive:Wa,Person:Wa,Pronoun:Wa,Determiner:Wa,Copula:Wa,Preposition:Wa,Conjunction:Wa,Comparative:Wa},beforeWords:{been:Wa,keep:Wa,continue:Wa,stop:Wa,am:Wa,be:Wa,me:Wa,began:Wa,start:Wa,starts:Wa,started:Wa,stops:Wa,stopped:Wa,help:Wa,helps:Wa,avoid:Wa,avoids:Wa,love:Wa,loves:Wa,loved:Wa,hate:Wa,hates:Wa,hated:Wa},afterWords:{you:Wa,me:Wa,her:Wa,him:Wa,them:Wa,their:Wa,it:Wa,this:Wa,there:Wa,on:Wa,about:Wa,for:Wa}},qa={beforeTags:Object.assign({},Ma.beforeTags,Ja.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ma.afterTags,Ja.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ma.beforeWords,Ja.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ma.afterWords,Ja.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ka="Singular";var Ua={beforeTags:{Determiner:Ka,Possessive:Ka,Acronym:Ka,Noun:Ka,Adjective:Ka,PresentTense:Ka,Gerund:Ka,PastTense:Ka,Infinitive:Ka,Date:Ka},afterTags:{Value:Ka,Modal:Ka,Copula:Ka,PresentTense:Ka,PastTense:Ka,Demonym:Ka},beforeWords:{the:Ka,with:Ka,without:Ka,of:Ka,for:Ka,any:Ka,all:Ka,on:Ka,cut:Ka,cuts:Ka,save:Ka,saved:Ka,saves:Ka,make:Ka,makes:Ka,made:Ka,minus:Ka,plus:Ka,than:Ka,another:Ka,versus:Ka,neither:Ka,favorite:Ka,best:Ka,daily:Ka,weekly:Ka,linear:Ka,binary:Ka,mobile:Ka,lexical:Ka,technical:Ka,computer:Ka,scientific:Ka,formal:Ka},afterWords:{of:Ka,system:Ka,aid:Ka,method:Ka,utility:Ka,tool:Ka,reform:Ka,therapy:Ka,philosophy:Ka,room:Ka,authority:Ka,says:Ka,said:Ka,wants:Ka,wanted:Ka}};const Ra={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var _a={beforeTags:Object.assign({},Ma.beforeTags,Ua.beforeTags,Ra.beforeTags),afterTags:Object.assign({},Ma.afterTags,Ua.afterTags),beforeWords:Object.assign({},Ma.beforeWords,Ua.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,Ua.afterWords)};const Qa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Za={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ya={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Xa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var eo={beforeTags:Object.assign({},Ma.beforeTags,Qa),afterTags:Object.assign({},Ma.afterTags,Za),beforeWords:Object.assign({},Ma.beforeWords,Ya),afterWords:Object.assign({},Ma.afterWords,Xa)};const to="Infinitive";var no={beforeTags:{Modal:to,Adverb:to,Negative:to,Plural:to},afterTags:{Determiner:to,Adverb:to,Possessive:to,Preposition:to},beforeWords:{i:to,we:to,you:to,they:to,to:to,please:to,will:to,have:to,had:to,would:to,could:to,should:to,do:to,did:to,does:to,can:to,must:to,us:to,me:to,he:to,she:to,it:to,being:to},afterWords:{the:to,me:to,you:to,him:to,her:to,them:to,it:to,a:to,an:to,up:to,down:to,by:to,out:to,off:to,under:to,when:to,all:to,to:to,because:to,although:to,before:to,how:to,otherwise:to,together:to,though:to,yet:to}};const ro={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ao={beforeTags:Object.assign({},Ma.beforeTags,no.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ma.afterTags,no.afterTags,ro.afterTags),beforeWords:Object.assign({},Ma.beforeWords,no.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,no.afterWords,{to:void 0})};const oo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},io={},so={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},lo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var uo={beforeTags:Object.assign({},Ja.beforeTags,Ua.beforeTags,oo),afterTags:Object.assign({},Ja.afterTags,Ua.afterTags,io),beforeWords:Object.assign({},Ja.beforeWords,Ua.beforeWords,so),afterWords:Object.assign({},Ja.afterWords,Ua.afterWords,lo)},co={beforeTags:Object.assign({},no.beforeTags,Ua.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},no.afterTags,Ua.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},no.beforeWords,Ua.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},no.afterWords,Ua.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ho="Person";var mo={beforeTags:{Honorific:ho,Person:ho,Preposition:ho},afterTags:{Person:ho,ProperNoun:ho,Verb:ho},ownTags:{ProperNoun:ho},beforeWords:{hi:ho,hey:ho,yo:ho,dear:ho,hello:ho},afterWords:{said:ho,says:ho,told:ho,tells:ho,feels:ho,felt:ho,seems:ho,thinks:ho,thought:ho,spends:ho,spendt:ho,plays:ho,played:ho,sing:ho,sang:ho,learn:ho,learned:ho,wants:ho,wanted:ho}};const po="Month",go={beforeTags:{Date:po,Value:po},afterTags:{Date:po,Value:po},beforeWords:{by:po,in:po,on:po,during:po,after:po,before:po,between:po,until:po,til:po,sometime:po,of:po,this:po,next:po,last:po,previous:po,following:po},afterWords:{sometime:po,in:po,of:po,until:po,the:po}};var fo={beforeTags:Object.assign({},mo.beforeTags,go.beforeTags),afterTags:Object.assign({},mo.afterTags,go.afterTags),beforeWords:Object.assign({},mo.beforeWords,go.beforeWords),afterWords:Object.assign({},mo.afterWords,go.afterWords)};const bo={Place:"Place"},vo={Place:"Place",Abbreviation:"Place"},yo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},wo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let Po="Unit";const ko={"Adj|Gerund":qa,"Adj|Noun":_a,"Adj|Past":eo,"Adj|Present":ao,"Noun|Verb":co,"Noun|Gerund":uo,"Person|Noun":{beforeTags:Object.assign({},Ua.beforeTags,mo.beforeTags),afterTags:Object.assign({},Ua.afterTags,mo.afterTags),beforeWords:Object.assign({},Ua.beforeWords,mo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ua.afterWords,mo.afterWords)},"Person|Date":fo,"Person|Verb":{beforeTags:Object.assign({},mo.beforeTags,no.beforeTags),afterTags:Object.assign({},mo.afterTags,no.afterTags),beforeWords:Object.assign({},mo.beforeWords,no.beforeWords),afterWords:Object.assign({},mo.afterWords,no.afterWords)},"Person|Place":{beforeTags:Object.assign({},bo,mo.beforeTags),afterTags:Object.assign({},vo,mo.afterTags),beforeWords:Object.assign({},yo,mo.beforeWords),afterWords:Object.assign({},wo,mo.afterWords)},"Unit|Noun":{beforeTags:{Value:Po},afterTags:{},beforeWords:{per:Po,every:Po,each:Po,square:Po,cubic:Po,sq:Po,metric:Po},afterWords:{per:Po,squared:Po,cubed:Po,long:Po}}},Ao=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};ko["Plural|Verb"]={beforeWords:Ao(ko["Noun|Verb"].beforeWords,{}),afterWords:Ao(ko["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Ao(ko["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ao(ko["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var jo=ko;const Eo="Adjective",xo="Infinitive",No="PresentTense",Io="Singular",Go="PastTense",To="Adverb",Do="Plural",Co="Actor",Oo="Verb",Bo="Noun",Vo="LastName",zo="Modal",$o="Participle";var Fo=[null,null,{ea:Io,ia:Bo,ic:Eo,ly:To,"'n":Oo,"'t":Oo},{oed:Go,ued:Go,xed:Go," so":To,"'ll":zo,"'re":"Copula",azy:Eo,eer:Bo,end:Oo,ped:Go,ffy:Eo,ify:xo,ing:"Gerund",ize:xo,ibe:xo,lar:Eo,mum:Eo,nes:No,nny:Eo,ous:Eo,que:Eo,rol:Io,sis:Io,ogy:Io,oid:Io,ian:Io,zes:No,eld:Go,ken:$o,ven:$o,ten:$o,ect:xo,ict:xo,ign:xo,ful:Eo,bal:Eo},{amed:Go,aped:Go,ched:Go,lked:Go,rked:Go,reed:Go,nded:Go,mned:Eo,cted:Go,dged:Go,ield:Io,akis:Vo,cede:xo,chuk:Vo,czyk:Vo,ects:No,ends:Oo,enko:Vo,ette:Io,wner:Io,fies:No,fore:To,gate:xo,gone:Eo,ices:Do,ints:Do,ruct:xo,ines:Do,ions:Do,less:Eo,llen:Eo,made:Eo,nsen:Vo,oses:No,ould:zo,some:Eo,sson:Vo,tion:Io,tage:Bo,ique:Io,tive:Eo,tors:Bo,vice:Io,lier:Io,fier:Io,wned:Go,gent:Io,tist:Io,pist:Io,rist:Io,mist:Io,yist:Io,vist:Io,lite:Io,site:Io,rite:Io,mite:Io,bite:Io,mate:Io,date:Io,ndal:Io,vent:Io,uist:Io,gist:Io,note:Io,cide:Io,wide:Eo,vide:xo,ract:xo,duce:xo,pose:xo,eive:xo,lyze:xo,lyse:xo,iant:Eo,nary:Eo},{elist:Io,holic:Io,phite:Io,tized:Go,urned:Go,eased:Go,ances:Do,bound:Eo,ettes:Do,fully:To,ishes:No,ities:Do,marek:Vo,nssen:Vo,ology:Bo,osome:Io,tment:Io,ports:Do,rough:Eo,tches:No,tieth:"Ordinal",tures:Do,wards:To,where:To,archy:Bo,pathy:Bo,opoly:Bo,embly:Bo,phate:Bo,ndent:Io,scent:Io,onist:Io,anist:Io,alist:Io,olist:Io,icist:Io,ounce:xo,iable:Eo,borne:Eo,gnant:Eo,inant:Eo,igent:Eo,atory:Eo,rient:Io,dient:Io},{auskas:Vo,parent:Io,cedent:Io,ionary:Io,cklist:Io,keeper:Co,logist:Co,teenth:"Value"},{opoulos:Vo,borough:"Place",sdottir:Vo}];const So="Adjective",Ho="Noun",Lo="Verb";var Mo=[null,null,{},{neo:Ho,bio:Ho,"de-":Lo,"re-":Lo,"un-":Lo},{anti:Ho,auto:Ho,faux:So,hexa:Ho,kilo:Ho,mono:Ho,nano:Ho,octa:Ho,poly:Ho,semi:So,tele:Ho,"pro-":So,"mis-":Lo,"dis-":Lo,"pre-":So},{anglo:Ho,centi:Ho,ethno:Ho,ferro:Ho,grand:Ho,hepta:Ho,hydro:Ho,intro:Ho,macro:Ho,micro:Ho,milli:Ho,nitro:Ho,penta:Ho,quasi:So,radio:Ho,tetra:Ho,"omni-":So,"post-":So},{pseudo:So,"extra-":So,"hyper-":So,"inter-":So,"intra-":So,"deca-":So},{electro:Ho}];const Wo="Adjective",Jo="Infinitive",qo="PresentTense",Ko="Singular",Uo="PastTense",Ro="Adverb",_o="Expression",Qo="Actor",Zo="Verb",Yo="Noun",Xo="LastName";var ei={a:[[/.[aeiou]na$/,Yo,"tuna"],[/.[oau][wvl]ska$/,Xo],[/.[^aeiou]ica$/,Ko,"harmonica"],[/^([hyj]a+)+$/,_o,"haha"]],c:[[/.[^aeiou]ic$/,Wo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Uo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Uo,"rammed"],[/.[aeiou][sg]hed$/,Uo,"gushed"],[/.[aeiou]red$/,Uo,"hired"],[/.[aeiou]r?ried$/,Uo,"hurried"],[/[^aeiou]ard$/,Ko,"steward"],[/[aeiou][^aeiou]id$/,Wo,""],[/.[vrl]id$/,Wo,"livid"],[/..led$/,Uo,"hurled"],[/.[iao]sed$/,Uo,""],[/[aeiou]n?[cs]ed$/,Uo,""],[/[aeiou][rl]?[mnf]ed$/,Uo,""],[/[aeiou][ns]?c?ked$/,Uo,"bunked"],[/[aeiou]gned$/,Uo],[/[aeiou][nl]?ged$/,Uo],[/.[tdbwxyz]ed$/,Uo],[/[^aeiou][aeiou][tvx]ed$/,Uo],[/.[cdflmnprstv]ied$/,Uo,"emptied"]],e:[[/.[lnr]ize$/,Jo,"antagonize"],[/.[^aeiou]ise$/,Jo,"antagonise"],[/.[aeiou]te$/,Jo,"bite"],[/.[^aeiou][ai]ble$/,Wo,"fixable"],[/.[^aeiou]eable$/,Wo,"maleable"],[/.[ts]ive$/,Wo,"festive"],[/[a-z]-like$/,Wo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wo,"cornish"],[/.v[iy]ch$/,Xo,"..ovich"],[/^ug?h+$/,_o,"ughh"],[/^uh[ -]?oh$/,_o,"uhoh"],[/[a-z]-ish$/,Wo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Xo,"polish-male"]],k:[[/^(k){2}$/,_o,"kkkk"]],l:[[/.[gl]ial$/,Wo,"familial"],[/.[^aeiou]ful$/,Wo,"fitful"],[/.[nrtumcd]al$/,Wo,"natal"],[/.[^aeiou][ei]al$/,Wo,"familial"]],m:[[/.[^aeiou]ium$/,Ko,"magnesium"],[/[^aeiou]ism$/,Ko,"schism"],[/^[hu]m+$/,_o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wo,"republican"],[/[^aeiou]ician$/,Qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,_o,"noooo"],[/^(yo)+$/,_o,"yoo"],[/^wo{2,}[pt]?$/,_o,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ko],[/[^i]fer$/,Jo],[/.[^aeiou][ao]pher$/,Qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wo],[/[aeiou].*ist$/,Wo],[/^[a-z]et$/,Zo]],s:[[/.[^aeiou]ises$/,qo],[/.[rln]ates$/,qo],[/.[^z]ens$/,Zo],[/.[lstrn]us$/,Ko],[/.[aeiou]sks$/,qo],[/.[aeiou]kes$/,qo],[/[aeiou][^aeiou]is$/,Ko],[/[a-z]'s$/,Yo],[/^yes+$/,_o]],v:[[/.[^aeiou][ai][kln]ov$/,Xo]],y:[[/.[cts]hy$/,Wo],[/.[st]ty$/,Wo],[/.[tnl]ary$/,Wo],[/.[oe]ry$/,Ko],[/[rdntkbhs]ly$/,Ro],[/.(gg|bb|zz)ly$/,Wo],[/...lly$/,Ro],[/.[gk]y$/,Wo],[/[bszmp]{2}y$/,Wo],[/.[ai]my$/,Wo],[/[ea]{2}zy$/,Wo],[/.[^aeiou]ity$/,Ko]]};const ti="Verb",ni="Noun";var ri={leftTags:[["Adjective",ni],["Possessive",ni],["Determiner",ni],["Adverb",ti],["Pronoun",ti],["Value",ni],["Ordinal",ni],["Modal",ti],["Superlative",ni],["Demonym",ni],["Honorific","Person"]],leftWords:[["i",ti],["first",ni],["it",ti],["there",ti],["not",ti],["because",ni],["if",ni],["but",ni],["who",ti],["this",ni],["his",ni],["when",ni],["you",ti],["very","Adjective"],["old",ni],["never",ti],["before",ni],["a","Singular"],["the",ni],["been",ti]],rightTags:[["Copula",ni],["PastTense",ni],["Conjunction",ni],["Modal",ni]],rightWords:[["there",ti],["me",ti],["man","Adjective"],["only",ti],["him",ti],["it",ti],["were",ni],["took",ni],["himself",ti],["went",ni],["who",ni],["jr","Person"]]},ai={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},oi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ii={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},si={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},li={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ui=/^.([0-9]+)/;var ci=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ui);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ui,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},di=/^([0-9]+)/,mi=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(di);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(di,"")]}(n[0],n[1])})};var pi=function(e={}){return(e=Object.assign({},e)).rules=mi(e.rules),e.rules=hi(e.rules),e.rev&&(e.rev=mi(e.rev),e.rev=hi(e.rev)),e.exceptions=mi(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},gi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const fi=pi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),bi=pi(si),vi=pi(oi),yi=pi(ii),wi=gi(fi),Pi=gi(bi),ki=gi(vi),Ai=gi(yi),ji=pi(ai),Ei=pi(li);var xi={fromPast:fi,fromPresent:bi,fromGerund:vi,fromParticiple:yi,toPast:wi,toPresent:Pi,toGerund:ki,toParticiple:Ai,toComparative:ji,toSuperlative:Ei,fromComparative:gi(ji),fromSuperlative:gi(Ei)},Ni=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),Ii=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Gi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ti[t].forEach(n=>e[n]=t),e),{});var Di=Ti,Ci=function(e){let t=e.substring(e.length-3);if(!0===Di.hasOwnProperty(t))return Di[t];let n=e.substring(e.length-2);return!0===Di.hasOwnProperty(n)?Di[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Oi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Bi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ci(e)),Oi.hasOwnProperty(e))c=Oi[e];else if("Participle"===n)c=ci(l,i);else if("PastTense"===n)c=ci(l,r);else if("PresentTense"===n)c=ci(l,a);else{if("Gerund"!==n)return e;c=ci(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Vi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ci(i,n),PresentTense:ci(i,r),Gerund:ci(i,a),FutureTense:"will "+e},u=ci(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},zi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const $i="ically",Fi=new Set(["analyt"+$i,"chem"+$i,"class"+$i,"clin"+$i,"crit"+$i,"ecolog"+$i,"electr"+$i,"empir"+$i,"frant"+$i,"grammat"+$i,"ident"+$i,"ideolog"+$i,"log"+$i,"mag"+$i,"mathemat"+$i,"mechan"+$i,"med"+$i,"method"+$i,"method"+$i,"mus"+$i,"phys"+$i,"phys"+$i,"polit"+$i,"pract"+$i,"rad"+$i,"satir"+$i,"statist"+$i,"techn"+$i,"technolog"+$i,"theoret"+$i,"typ"+$i,"vert"+$i,"whims"+$i]),Si=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Hi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Li={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Mi=function(e){return e.endsWith("ly")?Fi.has(e)?e.replace(/ically/,"ical"):Hi.has(e)?null:Li.hasOwnProperty(e)?Li[e]:zi(e,Si)||e:null};const Wi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ji={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var qi=function(e){if(Ji.hasOwnProperty(e))return Ji[e];let t=zi(e,Wi);return t||e+"ly"};const Ki=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ui={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ri=new Set(["terrible","annoying"]),_i=function(e,t){const n=t.two.models.toSuperlative;return ci(e,n)},Qi=function(e,t){const n=t.two.models.toComparative;return ci(e,n)};var Zi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Yi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Zi.hasOwnProperty(i)&&Zi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:za,nounToSingular:Gi,verbToInfinitive:Bi,getTense:Ci,verbConjugate:Vi,adjToSuperlative:_i,adjToComparative:Qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ci(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ci(e,n)},advToAdjective:Mi,adjToAdverb:qi,adjToNoun:function(e){if(Ui.hasOwnProperty(e))return Ui[e];if(Ri.has(e))return null;let t=zi(e,Ki);return t||e+"ness"}}}},Xi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const es=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var ts=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=es(n,"Infinitive","PastTense"),Object.assign(s,l),l=es(r,"Infinitive","Verb"),Object.assign(s,l),l=es(a,"Infinitive","Gerund"),Object.assign(s,l),l=es(o,"Adjective","Superlative"),Object.assign(s,l),l=es(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let ns={two:{models:xi}};const rs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},as=function(e,t){const n={model:t,methods:Yi};let{lex:r,_multi:a}=Yi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},os=function(e,t,n){let r=Vi(e,ns);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},is=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=rs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||os(a,r,!1),"Adj|Present"===o&&(os(a,r,!0),function(e,t,n){let r=_i(e,n);t[r]=t[r]||"Superlative";let a=Qi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Bi(a,ns,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Bi(a,ns,"PastTense");r[e]||(n[e]="Infinitive")}}),t=as(n,t)};let ss={one:{_multiCache:{},lexicon:Fa},two:{irregularPlurals:ja,models:xi,suffixPatterns:Fo,prefixPatterns:Mo,endsWith:ei,neighbours:ri,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Sa,clues:jo,uncountable:{},orgWords:Ni}};ss=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=as(e.one.lexicon,e)).one.lexicon,e),e=is(e.two.switches,e),e=ts(e),e=Xi(e)}(ss);var ls=ss;const us=/^(under|over|mis|re|un|dis|semi)-?/;var cs=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(us.test(a.normal)){let e=a.normal.replace(us,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},hs=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const ds={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},ms=new Set(["formulas","koalas","israelis","menus"]),ps=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var gs=function(e){if(!e||e.length<=3)return!1;if(ms.has(e))return!0;let t=e[e.length-1];return ds.hasOwnProperty(t)?ds[t].find(t=>e.endsWith(t)):"s"===t&&!ps.find(t=>e.endsWith(t))};const fs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var bs=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(gs(e.normal)?hs(e,"Plural","3-plural-guess"):hs(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ci(e.normal);t&&hs(e,t,"3-verb-tense-guess")}}(r)};const vs=/^\p{Lu}[\p{Ll}'’]/u,ys=/[0-9]/,ws=["Date","Month","WeekDay","Unit"],Ps=/^[IVXLCDM]{2,}$/,ks=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,As={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var js=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===vs.test(o)&&!1===ys.test(o)?ws.find(e=>r.tags.has(e))?null:(bs(e,t,n),r.tags.has("Noun")||r.tags.clear(),hs(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Ps.test(o)&&ks.test(o)&&!As[r.normal]?(hs(r,"RomanNumeral","2-xvii"),!0):null};const Es=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var xs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Es(r.normal,n.two.suffixPatterns);if(null!==e)return hs(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Es(r.implicit,n.two.suffixPatterns),null!==e))return hs(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ns=/['‘’‛‵′`´]/,Is=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return hs(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ds=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Cs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ds.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Os=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Bs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Vs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Cs(a)||Cs(o))return hs(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Os(a)||Os(o))return hs(n,"Year","2-tagYear-close");if(Bs(e[t-2])||Bs(e[t+2]))return hs(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return hs(n,"Year","2-tagYear-noun")}}}return null};const zs=/^[A-Z]('s|,)?$/,$s=/^[A-Z-]+$/,Fs=/([A-Z]\.)+[A-Z]?,?$/,Ss=/[A-Z]{2,}('s|,)?$/,Hs=/([a-z]\.)+[a-z]\.?$/,Ls={I:!0,A:!0};var Ms=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===$s.test(n)||n.length>5||Ls.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Fs.test(n)&&!0!==Hs.test(n)&&!0!==zs.test(n)&&!0!==Ss.test(n))}(r,n)?(r.tags.clear(),hs(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ls.hasOwnProperty(r.text)&&zs.test(r.text)?(r.tags.clear(),hs(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(hs(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&$s.test(r.text)&&r.text.length<=6?(hs(r,"Acronym","3-titlecase-acronym"),!0):null};const Ws=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Js=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var qs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ws(e[t-1],a),l=l||Ws(e[t+1],o),l=l||Js(e[t-1],r),l=l||Js(e[t+1],i),l)return hs(s,l,"3-[neighbour]"),bs(e,t,n),e[t].confidence=.2,!0}return null};const Ks=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Us=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ks(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ks(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Rs=function(e,t,n){0===e[t].tags.size&&(hs(e[t],"Noun","3-[fallback]"),bs(e,t,n),e[t].confidence=.1)};const _s=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Qs=(e,t,n)=>0!==t||e[1]?null:n;var Zs={"Adj|Gerund":(e,t)=>_s(e,t),"Adj|Noun":(e,t)=>_s(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>_s(e,t),"Adj|Present":(e,t)=>_s(e,t),"Noun|Gerund":(e,t)=>_s(e,t),"Noun|Verb":(e,t)=>_s(e,t)||Qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>_s(e,t)||Qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>_s(e,t),"Person|Verb":(e,t)=>0!==t&&_s(e,t)};const Ys="undefined"!=typeof process&&process.env?process.env:self.env||{},Xs=/^(under|over|mis|re|un|dis|semi)-?/,el=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ys.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},tl=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ys.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r},nl={tagSwitch:cs,checkSuffix:xs,checkRegex:Gs,checkCase:js,checkPrefix:Ts,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(hs(o,"Verb","3-[prefix]"),hs(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(hs(o,"Adjective","3-[prefix]"),hs(o,"Prefix","3-[prefix]")))},checkYear:Vs},rl={checkAcronym:Ms,neighbours:qs,orgWords:Us,nounFallback:Rs,switches:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Xs.test(l)&&!o[l]&&(l=l.replace(Xs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=el(e[t+1],n.afterWords);return o=o||el(e[t-1],n.beforeWords),o=o||tl(e[t-1],n.beforeTags,a),o=o||tl(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Zs[o]&&(u=Zs[o](e,t)||u),u?(a([s],u,n,null,`3-[variable] (${o})`),bs(e,t,r)):Ys.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},al=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},sl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ll={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const yl=/'/;var wl=function(e,t){let n=e[t].normal.split(yl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Pl=/'/;var kl=function(e,t){let n=e[t].normal.split(Pl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},Al=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const jl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},El={in:!0,by:!0,for:!0};var xl=(e,t)=>{let n=e[t];if(jl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===El[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Nl=/'/,Il=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},Gl={d:(e,t)=>kl(e,t),t:(e,t)=>Al(e,t),s:(e,t,n)=>xl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):wl(e,t)},Tl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Dl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Nl.test(r[o].normal)&&([,i]=r[o].normal.split(Nl));let s=null;Gl.hasOwnProperty(i)&&(s=Gl[i](r,o,t)),s&&(s=Tl(s,e),vl(n,[a,o],s),Il(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=bl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=fl},hooks:["contractionTwo"]};const Cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ol=["i","we","they"];let Bl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Cl+" #Person",tag:"Person",reason:"randy-smith"},{match:Cl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Cl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ol,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ol,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ol,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Vl=null;var zl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vl=Vl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Vl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Bl}},hooks:["postTagger"]},$l=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Fl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=$l(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},Sl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Hl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Sl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Ll={api:function(e){e.prototype.swap=Hl}};p.plugin(ml),p.plugin(Dl),p.plugin(zl),p.plugin(Fl),p.plugin(Ll);var Ml=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Wl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Jl={this:"Noun",then:"Pivot"};var ql=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},Xl={compute:{chunks:function(e){const{document:t,world:n}=e;ql(t),Kl(t),_l(e,t,n),Zl(t),Yl(t)}},api:function(e){e.prototype.chunks=Wl,e.prototype.clauses=Ml},hooks:["chunks"]};const eu=/'s$/;var tu=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const nu=/\(/,ru=/\)/,au=function(e,t){for(;t{e[0].pre=e[0].pre.replace(nu,"");let t=e[e.length-1];t.post=t.post.replace(ru,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const iu={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},su=RegExp("("+Object.keys(iu).join("|")+")"),lu=RegExp("("+Object.values(iu).join("|")+")"),uu=function(e,t){const n=e[t].pre.match(su)[0]||"";if(!n||!iu[n])return null;const r=iu[n];for(;t{e[0].pre=e[0].pre.replace(su,"");let t=e[e.length-1];t.post=t.post.replace(lu,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const hu=/\./g;var du=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(hu,""),e.normal=e.normal.replace(hu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(hu,""),e.normal=e.normal.replace(hu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},mu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const pu=(e,t)=>"number"==typeof t?e.eq(t):e,gu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var fu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=gu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return pu(this,e).map(e=>{let n=gu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=pu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=pu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=pu(t,e),new Adjectives(t.document,t.pointer)}};const bu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},vu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let yu=[["emojis","emoji"],["atmentions","atMentions"]];var wu=function(e){vu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=bu,yu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Pu={api:function(e){wu(e),tu(e),ou(e),cu(e),fu(e),mu(e),du(e)}};const ku=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var Au={case:e=>{ku(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;ku(e,e=>e.text=n(e.text,t))},whitespace:e=>{ku(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{ku(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const ju=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),Eu="unicode|punctuation|whitespace|acronyms",xu="|case|contractions|parentheses|quotations|emoji|honorifics",Nu={light:ju(Eu),medium:ju(Eu+xu),heavy:ju(Eu+xu+"|possessives|adverbs|nouns|verbs")};var Iu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Nu[e]),Object.keys(e).forEach(t=>{Au.hasOwnProperty(t)&&Au[t](this,e[t])}),this}}},Gu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Tu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Du=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Ou=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Cu(e,t),isSubordinate:Du(e),root:t}};const Bu=e=>e.text(),Vu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),zu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var $u=function(e){let t=Ou(e);return{root:Bu(t.root),number:zu(t.number),determiner:Bu(t.determiner),adjectives:Vu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Fu={tags:!0};var Su=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Fu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Fu),e};const Hu={tags:!0};var Lu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Hu).tag("Singular","toPlural"),e};const Mu=(e,t)=>"number"==typeof t?e.eq(t):e;var Wu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Mu(this,e).map(Ou)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=$u(t)),n},[])}isPlural(e){let t=this.filter(e=>Ou(e).isPlural);return Mu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Ou(e).adjectives;n.found&&(t=t.concat(n))}),Mu(t,e)}toPlural(e){return Mu(this,e).map(e=>Su(e,Ou(e)))}toSingular(e){return Mu(this,e).map(e=>{let t=Ou(e);return Lu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Gu(this);return t=Mu(t,e),new Nouns(this.document,t.pointer)}}},Ju=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},qu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Ku.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Ku.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Ku.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Ru=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Qu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Zu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Yu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Xu=function(e){if(!0===Zu.hasOwnProperty(e))return Zu[e];if("a"===e||"an"===e)return 1;const t=qu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=tc(n),r=tc(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:tc(n);let a=r.text("reduced");return ec.test(a)&&(a=a.replace(ec,""),r=r.replaceWith(a)),r=nc.hasOwnProperty(a)?nc[a]:tc(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:tc(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},ac=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const oc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],ic=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],sc=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],lc=function(e){let t=[];if(e>100)return t;for(let n=0;n=oc[n][1]&&(e-=oc[n][1],t.push(oc[n][0]));return ic[e]&&t.push(ic[e]),t};var uc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=ac(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return sc.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(lc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=ac(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},cc=function(e){return e.numerator&&e.denominator?`${uc({num:e.numerator})} out of ${uc({num:e.denominator})}`:""};const hc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var dc=e=>{let t=uc(e).split(" "),n=t[t.length-1];return hc.hasOwnProperty(n)?t[t.length-1]=hc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},mc=function(e){if(!e.numerator||!e.denominator)return"";let t=uc({num:e.numerator}),n=dc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const pc=(e,t)=>"number"==typeof t?e.eq(t):e;var gc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return pc(this,e).map(rc)}get(e){return pc(this,e).map(rc)}json(e){return pc(this,e).map(t=>{let n=t.toView().json(e)[0],r=rc(t);return n.fraction=r,n},[])}toDecimal(e){return pc(this,e).forEach(e=>{let{decimal:t}=rc(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return pc(this,e).forEach(e=>{let t=rc(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return pc(this,e).forEach(e=>{let t=rc(e),n=mc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return pc(this,e).forEach(e=>{let t=rc(e),n=cc(t);e.replaceWith(n)}),this}toPercentage(e){return pc(this,e).forEach(e=>{let{decimal:t}=rc(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ju(this);return t=pc(t,e),new Fractions(this.document,t.pointer)}};const fc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var bc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+fc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+fc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+fc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+fc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${fc})`),r=e.has("("+fc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+fc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+fc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},vc=function(e){if("string"==typeof e)return{num:Xu(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=rc(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Xu(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},yc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=ac(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const wc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Pc={"%":"percent","°":"degrees"};var kc=function(e){let t={suffix:"",prefix:e.prefix};return wc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+wc[e.prefix],t.prefix=""),Pc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Pc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Ac=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=kc(e);return t+dc(e)+n}if("Ordinal"===t)return e.prefix+yc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=kc(e);return t+uc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ec=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return jc(this,e).map(vc)}get(e){return jc(this,e).map(vc).map(e=>e.num)}json(e){return jc(this,e).map(t=>{let n=t.toView().json(e)[0],r=vc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=vc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Ac(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=vc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Ac(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=vc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Ac(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=vc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Ac(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=vc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Ac(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>vc(t).num===e)}greaterThan(e){return this.filter(t=>vc(t).num>e)}lessThan(e){return this.filter(t=>vc(t).num{let r=vc(n).num;return r>e&&r{let n=vc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ac(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=vc(e).num);let t=this.map(t=>{let n=vc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ac(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=bc(this);return t=jc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=bc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=jc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=bc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=jc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},xc={api:function(e){gc(e),Ec(e)}};const Nc={people:!0,emails:!0,phoneNumbers:!0,places:!0},Ic=function(e={}){return!1!==(e=Object.assign({},Nc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Gc={api:function(e){e.prototype.redact=Ic}},Tc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Dc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Cc=function(e){let t=e.clauses(),n=Dc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Oc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Bc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Vc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},zc=function(e){return e.verbs().toInfinitive(),e};const $c=(e,t)=>"number"==typeof t?e.eq(t):e;var Fc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Cc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return $c(this,e).map(e=>(Cc(e),Oc(e)))}toPresentTense(e){return $c(this,e).map(e=>(Cc(e),Bc(e)))}toFutureTense(e){return $c(this,e).map(e=>(Cc(e),e=Vc(e)))}toInfinitive(e){return $c(this,e).map(e=>(Cc(e),zc(e)))}toNegative(e){return $c(this,e).map(e=>(Cc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return $c(this,e).map(e=>(Cc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return $c(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return $c(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=$c(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Tc(this);return $c(t,e)}};Object.assign(e.prototype,t)}},Sc=function(e){return e.match("#Honorific+? #Person+")},Hc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Lc="male",Mc="female",Wc={mr:Lc,mrs:Mc,miss:Mc,madam:Mc,king:Lc,queen:Mc,duke:Lc,duchess:Mc,baron:Lc,baroness:Mc,count:Lc,countess:Mc,prince:Lc,princess:Mc,sire:Lc,dame:Mc,lady:Mc,ayatullah:Lc,congressman:Lc,congresswoman:Mc,"first lady":Mc,mx:null};var Jc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Mc;if(n.has("#MaleName"))return Lc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Wc.hasOwnProperty(e))return Wc[e];if(/^her /.test(e))return Mc;if(/^his /.test(e))return Lc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Lc;if(n&&!t)return Mc}return null};const qc=(e,t)=>"number"==typeof t?e.eq(t):e;var Kc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return qc(this,e).map(Hc)}json(e){return qc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Hc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Jc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Sc(this);return t=qc(t,e),new People(this.document,t.pointer)}},Uc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},Rc=function(e){e.prototype.places=function(t){let n=Uc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},_c=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Qc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Zc=function(e){e.prototype.topics=Qc},Yc={api:function(e){Kc(e),Rc(e),_c(e),Zc(e)}},Xc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},eh=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},th=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const nh=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},rh=function(e){return e.match("#Negative")},ah=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var oh=function(e){let t=e.clone();t.contractions().expand();const n=eh(t);return{root:n,prefix:t.match("#Prefix"),adverbs:th(t,n),auxiliary:nh(t,n),negative:rh(t),phrasal:ah(n)}};const ih={tense:"PresentTense"},sh={conditional:!0},lh={tense:"FutureTense"},uh={progressive:!0},ch={tense:"PastTense"},hh={complete:!0,progressive:!1},dh={passive:!0},mh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},ph={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[ih]],["^wanted to #Infinitive$",[ch]],["^will want to #Infinitive$",[lh]]],"gerund-phrase":[["^#PastTense #Gerund$",[ch]],["^#PresentTense #Gerund$",[ih]],["^#Infinitive #Gerund$",[ih]],["^will #Infinitive #Gerund$",[lh]],["^have #PastTense #Gerund$",[ch]],["^will have #PastTense #Gerund$",[ch]]],"simple-present":[["^#PresentTense$",[ih]],["^#Infinitive$",[ih]]],"simple-past":[["^#PastTense$",[ch]]],"simple-future":[["^will #Adverb? #Infinitive",[lh]]],"present-progressive":[["^(is|are|am) #Gerund$",[ih,uh]]],"past-progressive":[["^(was|were) #Gerund$",[ch,uh]]],"future-progressive":[["^will be #Gerund$",[lh,uh]]],"present-perfect":[["^(has|have) #PastTense$",[ch,hh]]],"past-perfect":[["^had #PastTense$",[ch,hh]],["^had #PastTense to #Infinitive",[ch,hh]]],"future-perfect":[["^will have #PastTense$",[lh,hh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[ch,uh]]],"past-perfect-progressive":[["^had been #Gerund$",[ch,uh]]],"future-perfect-progressive":[["^will have been #Gerund$",[lh,uh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[ch,dh]],["^(was|were) being (#PastTense|#Participle)",[ch,dh]],["^(had|have) been (#PastTense|#Participle)",[ch,dh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[ih,dh]],["^(is|are|am) being (#PastTense|#Participle)",[ih,dh]],["^has been (#PastTense|#Participle)",[ih,dh]]],"passive-future":[["will have been (#PastTense|#Participle)",[lh,dh,sh]],["will be being? (#PastTense|#Participle)",[lh,dh,sh]]],"present-conditional":[["would be #PastTense",[ih,sh]]],"past-conditional":[["would have been #PastTense",[ch,sh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[lh]]],"auxiliary-past":[["^did #Infinitive$",[ch,{plural:!1}]],["^used to #Infinitive$",[ch,hh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[ih,hh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[ch]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let gh=[];Object.keys(ph).map(e=>{ph[e].forEach(t=>{gh.push({name:e,match:t[0],data:mh(t[1])})})});var fh=gh,bh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),vh(r)&&(n.remove(r),r=n.last()),vh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:yh(t,e)}};const Ph=e=>e,kh=(e,t)=>{let n=wh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ah=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=wh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},jh=function(e,t){let n=wh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Eh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},xh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Eh(e)),r&&e.replace(t.root,r),e},Nh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ih=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Gh=function(e){return e&&e.isView?e.text("normal"):""},Th=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Eh(e))};var Dh=function(e){let t=oh(e);e=e.clone().toView();const n=bh(e,t);return{root:t.root.text(),preAdverbs:Ih(t.adverbs.pre),postAdverbs:Ih(t.adverbs.post),auxiliary:Gh(t.auxiliary),negative:t.negative.found,prefix:Gh(t.prefix),infinitive:Th(t.root),grammar:n}};const Ch={tags:!0};var Oh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Eh(r)),i&&e.replace(r,i,Ch).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=jh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Bh={tags:!0},Vh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Eh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=wh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Bh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Vh.simple(e,t),e=Vh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Bh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Eh(a)),n(o,e.model).Participle}},zh={infinitive:Vh.simple,"simple-present":Vh.simple,"simple-past":Ph,"simple-future":Vh.both,"present-progressive":e=>(e.replace("are","were",Bh),e.replace("(is|are|am)","was",Bh),e),"past-progressive":Ph,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Vh.hasHad,"past-perfect":Ph,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Nh(e)),e.remove("have"),e),"present-perfect-progressive":Vh.hasHad,"past-perfect-progressive":Ph,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Bh),e),"passive-past":e=>(e.replace("have","had",Bh),e),"passive-present":e=>(e.replace("(is|are)","was",Bh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Bh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Ph,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Bh),e),"auxiliary-past":Ph,"auxiliary-present":e=>(e.replace("(do|does)","did",Bh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Bh):(Vh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Ph,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Bh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Vh.simple(e,t),Nh(e),e)};var $h=function(e,t,n){return zh.hasOwnProperty(n)?((e=zh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Fh={tags:!0},Sh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Eh(a)),!1===kh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ah(e)),o&&(e=e.replace(a,o,Fh)).not("#Particle").tag("PresentTense"),e},Hh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Eh(a)),!1===kh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Fh)).not("#Particle").tag("Gerund"),e},Lh={infinitive:Sh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Sh(e,t);{let t=wh(e).subject;if(kh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Fh)}return e},"simple-past":Sh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ah(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Sh(e,t),e=e.remove("will");return e},"present-progressive":Ph,"past-progressive":(e,t)=>{let n=Ah(e);return e.replace("(were|was)",n,Fh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Sh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=wh(e).subject;return kh(e)||n.has("i")?((e=xh(e,t)).remove("had"),e):(e.replace("had","has",Fh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Ph,"past-perfect-progressive":e=>e.replace("had","has",Fh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ah(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Fh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Ph,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Ph,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Hh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=jh(e);return e.replace(t.auxiliary,n),e}return Hh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Ph,"modal-infinitive":Ph,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Eh(r)),a&&(e=e.replace(t.root,a,Fh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Sh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return kh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Fh),e.remove("will"),e}};var Mh=function(e,t,n){return Lh.hasOwnProperty(n)?((e=Lh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Wh={tags:!0},Jh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Eh(r)),o&&(e=e.replace(r,o,Wh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},qh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Eh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Wh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Kh={infinitive:Jh,"simple-present":Jh,"simple-past":Jh,"simple-future":Ph,"present-progressive":qh,"past-progressive":qh,"future-progressive":Ph,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Ph,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Ph,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Ph,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Ph,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Ph,"modal-past":Ph,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Jh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Uh=function(e,t,n){return e.has("will")||e.has("going to")?e:Kh.hasOwnProperty(n)?((e=Kh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Rh={tags:!0};var _h=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Eh(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ah(e)} ${s}`,e.replace(a,s,Rh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Qh={tags:!0},Zh=function(e,t){let n=jh(e);return e.prepend(n+" not"),e},Yh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Xh=e=>e.has("(is|was|am|are|will|were|be)"),ed={"simple-present":(e,t)=>!0===Xh(e)?Yh(e):(e=xh(e,t),e=Zh(e)),"simple-past":(e,t)=>!0===Xh(e)?Yh(e):((e=xh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Xh(e)?Yh(e):Zh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Qh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Zh(e)).replace("wants","want",Qh)};var td=function(e,t,n){if(e.has("#Negative"))return e;if(ed.hasOwnProperty(n))return e=ed[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Xh(e)?Yh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const nd=(e,t)=>"number"==typeof t?e.eq(t):e;var rd={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return nd(this,e).map(oh)}json(e,t){return nd(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Dh(t),n},[])}subjects(e){return nd(this,e).map(e=>(oh(e),wh(e).subject))}adverbs(e){return nd(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return nd(this,e).filter(e=>!0!==wh(e).plural)}isPlural(e){return nd(this,e).filter(e=>!0===wh(e).plural)}isImperative(e){return nd(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return Oh(e,t,n.form)})}toPresentTense(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return Mh(e,t,n.form)})}toPastTense(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return $h(e,t,n.form)})}toFutureTense(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return Uh(e,t,n.form)})}toGerund(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return _h(e,t,n.form)})}conjugate(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Oh(e.clone(),t,n.form).text("normal"),PastTense:$h(e.clone(),t,n.form).text("normal"),PresentTense:Mh(e.clone(),t,n.form).text("normal"),FutureTense:Uh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return nd(this,e).map(e=>{let t=oh(e),n=bh(e,t);return td(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Xc(this);return t=nd(t,e),new Verbs(this.document,t.pointer)}}};return p.plugin(Xl),p.plugin(Pu),p.plugin(Iu),p.plugin(Wu),p.plugin(xc),p.plugin(Gc),p.plugin(Fc),p.plugin(Yc),p.plugin(rd),p},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index ab278a439..bc78f3dc0 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1,2 +1,2 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let d=Object.assign({},e);const m=function(e,t){t&&m.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(e,t){const{compute:n}=this._world;t&&m.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(e){return u(e,this._world,s,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},m.version="14.3.1";var p=m;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||v(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),b(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1;var r=k;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=A((r=r>46655?46655:r).toString(36));a+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const N=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},x=e=>"[object Array]"===Object.prototype.toString.call(e),E=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:x(e)?x(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(N(t.update([u]).firstTerm()),P(h,u,d,r)):(N(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(G,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},D.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var C=D;var O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const V={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};V.delete=V.remove;var B=V;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z;var F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return b(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}};var q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},T,C,B,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const _=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(_)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const me=/'/,pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute("lexicon"),a.world.compute.preTagger&&a.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},ve={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},be=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===me.test(r[s].normal)&&([l,u]=r[s].normal.split(me));let c=be(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&ve.hasOwnProperty(l)&&(c=ve[l](r,s)),c?(c=ye(c,e),Q(n,[i,s],c),ge(n[i],e,s,c.length)):pe.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),Q(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ne={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var xe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ee=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Ge=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Ge(e.goNext,void 0),e.failTo=Ge(e.failTo,0),e.endAs=Ge(e.endAs,null),e};var Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:xe(e,this.world));var r;let a=Te(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=xe(e,this.world());return De(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Oe(n,t),Object.keys(r).forEach(e=>{r[e]=Oe(r[e],t)}),{ptrs:n,byGroup:r}},Be=e=>"[object Object]"===Object.prototype.toString.call(e),ze=e=>e&&Be(e)&&!0===e.isView,$e=e=>e&&Be(e)&&!0===e.isNet,Fe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(ze(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Fe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(ze(e)){return e.fullPointer.length>0}if($e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(ze(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Fe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(ze(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Fe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var He={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Me=function(e,t){return[e[0],e[1],t[2]]},Le=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},We=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Je={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Me(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Le(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Me(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Je.split=Je.splitAfter;var qe=Je;const Ke=Object.assign({},Se,He,qe);Ke.lookBehind=Ke.before,Ke.lookBefore=Ke.before,Ke.lookAhead=Ke.after,Ke.lookAfter=Ke.after,Ke.notIf=Ke.ifNo;var Ue=function(e){Object.assign(e.prototype,Ke)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ze=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{Ze(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Ye(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ze(e)?r.push(e):r=r.concat(e.split(_e))}),r=Ye(r),r};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),at=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===at(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===at(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===at(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===at(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===at(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===at(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===at(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===at(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let r=n.choices.length-1;n.choices[r]=st(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===at(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===at(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===at(e))return e=lt(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===at(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=rt(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&ht.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var mt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var pt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=Xe(e);return r=r.map(e=>ct(e,t)),r=dt(r,n),r=mt(r,n),r=pt(r),r};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var vt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),Nt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>kt.test(e.post)||kt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Nt.hasQuotation=Nt.hasQuote;var xt=Nt;let Et=function(){};Et=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(bt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof xt[t.method]&&!0===xt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Et(e,t,n,r)):t.choices.some(t=>Et(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=Et;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Gt(e,e.t).length=r-e.t}return e.t=r,!0};const Ct=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Gt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Bt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var $t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!$t(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Gt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Tt(e,a))if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Bt(a))return null}if(!0!==e.optional)return null}else{if(!St(a))return null}else{if(!St(a))return null}else{if(!St(a))return null}else{if(!Vt(a))return null}else{if(!Ot(a))return null}else{if(!Dt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Ue,methods:{one:{termMethods:xt,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Yt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Xt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let rn=[],an=0;for(;an<64;)rn[an]=0|4294967296*Math.sin(++an%Math.PI);function on(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(an=i=0;an>4]+rn[i]+~~o[an|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},sn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&cn[o]&&(a[o]=cn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn;var mn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var pn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n ──────")),t.forEach(e=>{console.log(pn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=pn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=pn.blue(" │ ")+pn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var fn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${pn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const bn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var yn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var Pn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Nn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var xn=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var En={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Nn,splitAll:xn}}};var In=function(e,t){let n=e.concat(t),r=Nn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>jn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Gn=function(e,t){let n=Nn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>jn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Cn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},On={union:function(e){e=Dn(e,this);let t=In(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)}};On.and=On.union,On.intersection=function(e){e=Dn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.not=function(e){e=Dn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.difference=On.not,On.complement=function(){let e=this.all(),t=Tn(e.fullPointer,this.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=In(e,[t])}),e=Cn(e,this.document),this.update(e)};var Vn={methods:En,api:function(e){Object.assign(e.prototype,On)}};const Bn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var zn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Bn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Bn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Bn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var $n=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var Fn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Sn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Hn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=zn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=$n(a,t.hooks);return o=Fn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Sn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Ln=/ /,Wn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Jn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Ln.test(t))!function(e,t,n,r){let a=t.split(Ln);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Jn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,r))};var Kn=qn;var Un=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Rn({id:e})),t}return[Rn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Yn=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:_n(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Rn({});return e.forEach(e=>{if((e=Rn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Zn(t=e).forEach(Rn),t);var t},tr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Zn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},nr=function(e){let t=Zn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},rr={text:tr,txt:tr,array:nr,flat:nr},ar=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(tr(e,!0)),null):rr.hasOwnProperty(t)?rr[t](e):e},or=e=>{Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ir=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Xn(e),!ir.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Rn({});return new g$1(t)}add(e,t={}){if(Yn(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Xn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Zn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Zn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Zn(this.json)}fillDown(){var e;return e=this.json,Zn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Yn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){or(this.json);let e=Zn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return or(this.json),ar(this.json,e)}debug(){return or(this.json),ar(this.json,"debug"),this}}const sr=function(e){let t=er(e);return new g$1(t)};sr.prototype.plugin=function(e){e(this)};var lr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ur=function(e){if(lr.hasOwnProperty(e.id))return lr[e.id];if(lr.hasOwnProperty(e.is))return lr[e.is];let t=e._cache.parents.find(e=>lr[e]);return lr[t]};var cr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:ur(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const hr=function(e){return e?"string"==typeof e?[e]:e:[]};var dr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=hr(e[t].children),e[t].not=hr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var mr={one:{setTag:Kn,unTag:Un,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=dr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return sr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return cr(n)}}};const pr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var gr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),pr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return pr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var fr=function(e){Object.assign(e.prototype,gr)};var vr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const br=new Set(["Auxiliary","Possessive"]);var yr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(br.has(e)||!t.hasOwnProperty(n))return 1;if(br.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:mr,api:fr,lib:vr};const wr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Pr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var kr=function(e){let t=[],n=e.split(Pr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Hr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Wr=/^[a-z]\.([a-z]\.)+/i,Jr=/^[-+.][0-9]/,qr=/^'[0-9]{2}/;var Kr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Hr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Jr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Lr.test(a)&&/[sn]['’]$/.test(t)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Wr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Ur=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Rr=/([A-Z]\.)+[A-Z]?,?$/,Qr=/^[A-Z]\.,?$/,_r=/[A-Z]{2,}('s|,)?$/,Zr=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===Zr.test(e)||!0===Qr.test(e)||!0===_r.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ur(r),r=n(r,t),r=Yr(r),e.normal=r};var ea={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Gr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Fr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Br(n),n=Or(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Kr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}};var ta={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let na={},ra={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{na[t]=!0,ra[t]="Abbreviation",void 0!==e[1]&&(ra[t]=[ra[t],e[1]])})});var aa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let oa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ia={};Object.keys(oa).forEach((function(e){oa[e].split("").forEach((function(t){ia[t]=e}))}));const sa=/\//,la=/[a-z]\.[a-z]/i,ua=/[0-9]/;var ca=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),sa.test(n)&&!la.test(n)&&!ua.test(n)){let t=n.split(sa);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ha=/^\p{Letter}+-\p{Letter}+$/u;var da=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ha.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ma=function(e){let t=0,n=0,r=e.document;for(let e=0;epa(e,ca),machine:e=>pa(e,da),normal:e=>pa(e,Xr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const ba={safe:!0,min:3};var ya={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=fa},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},ba,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};p.extend(U),p.extend(An),p.extend(Jt),p.extend(Vn),p.extend(yr),p.plugin(we),p.extend(ga),p.plugin(f),p.extend(Ce),p.extend(ya),p.extend(Ne),p.extend(Mn);var wa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Pa={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ka="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Aa=ka.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var ja=function(e){if(void 0!==Aa[e])return Aa[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Na=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ea(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ia(Pa[e]);Ca.test(e)?Object.keys(t).forEach(t=>{if(Va[t]=e,"Noun|Verb"===e){let e=Da(t,Ba);Va[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Oa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oa[e]="Emoticon"),delete Oa[""],delete Oa.null,delete Oa[" "];const za="Adjective";var $a={beforeTags:{Determiner:za,Possessive:za},afterTags:{Adjective:za},beforeWords:{seem:za,seemed:za,seems:za,feel:za,feels:za,felt:za,appear:za,appears:za,appeared:za,also:za,over:za,under:za,too:za,it:za,but:za,still:za,really:za,quite:za,well:za,very:za,deeply:za,profoundly:za,extremely:za,so:za,badly:za,mostly:za,totally:za,awfully:za,rather:za,nothing:za,something:za,anything:za},afterWords:{too:za,also:za,or:za}};const Fa="Gerund";var Sa={beforeTags:{Adverb:Fa,Preposition:Fa,Conjunction:Fa},afterTags:{Adverb:Fa,Possessive:Fa,Person:Fa,Pronoun:Fa,Determiner:Fa,Copula:Fa,Preposition:Fa,Conjunction:Fa,Comparative:Fa},beforeWords:{been:Fa,keep:Fa,continue:Fa,stop:Fa,am:Fa,be:Fa,me:Fa,began:Fa,start:Fa,starts:Fa,started:Fa,stops:Fa,stopped:Fa,help:Fa,helps:Fa,avoid:Fa,avoids:Fa,love:Fa,loves:Fa,loved:Fa,hate:Fa,hates:Fa,hated:Fa},afterWords:{you:Fa,me:Fa,her:Fa,him:Fa,them:Fa,their:Fa,it:Fa,this:Fa,there:Fa,on:Fa,about:Fa,for:Fa}};var Ha={beforeTags:Object.assign({},$a.beforeTags,Sa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$a.afterTags,Sa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$a.beforeWords,Sa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$a.afterWords,Sa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ma="Singular";var La={beforeTags:{Determiner:Ma,Possessive:Ma,Acronym:Ma,Noun:Ma,Adjective:Ma,PresentTense:Ma,Gerund:Ma,PastTense:Ma,Infinitive:Ma,Date:Ma},afterTags:{Value:Ma,Modal:Ma,Copula:Ma,PresentTense:Ma,PastTense:Ma,Demonym:Ma},beforeWords:{the:Ma,with:Ma,without:Ma,of:Ma,for:Ma,any:Ma,all:Ma,on:Ma,cut:Ma,cuts:Ma,save:Ma,saved:Ma,saves:Ma,make:Ma,makes:Ma,made:Ma,minus:Ma,plus:Ma,than:Ma,another:Ma,versus:Ma,neither:Ma,favorite:Ma,best:Ma,daily:Ma,weekly:Ma,linear:Ma,binary:Ma,mobile:Ma,lexical:Ma,technical:Ma,computer:Ma,scientific:Ma,formal:Ma},afterWords:{of:Ma,system:Ma,aid:Ma,method:Ma,utility:Ma,tool:Ma,reform:Ma,therapy:Ma,philosophy:Ma,room:Ma,authority:Ma,says:Ma,said:Ma,wants:Ma,wanted:Ma}};const Wa={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ja={beforeTags:Object.assign({},$a.beforeTags,La.beforeTags,Wa.beforeTags),afterTags:Object.assign({},$a.afterTags,La.afterTags),beforeWords:Object.assign({},$a.beforeWords,La.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$a.afterWords,La.afterWords)};const qa={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ka={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ua={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ra={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Qa={beforeTags:Object.assign({},$a.beforeTags,qa),afterTags:Object.assign({},$a.afterTags,Ka),beforeWords:Object.assign({},$a.beforeWords,Ua),afterWords:Object.assign({},$a.afterWords,Ra)};const _a="Infinitive";var Za={beforeTags:{Modal:_a,Adverb:_a,Negative:_a,Plural:_a},afterTags:{Determiner:_a,Adverb:_a,Possessive:_a,Preposition:_a},beforeWords:{i:_a,we:_a,you:_a,they:_a,to:_a,please:_a,will:_a,have:_a,had:_a,would:_a,could:_a,should:_a,do:_a,did:_a,does:_a,can:_a,must:_a,us:_a,me:_a,he:_a,she:_a,it:_a,being:_a},afterWords:{the:_a,me:_a,you:_a,him:_a,her:_a,them:_a,it:_a,a:_a,an:_a,up:_a,down:_a,by:_a,out:_a,off:_a,under:_a,when:_a,all:_a,to:_a,because:_a,although:_a,before:_a,how:_a,otherwise:_a,together:_a,though:_a,yet:_a}};const Ya={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xa={beforeTags:Object.assign({},$a.beforeTags,Za.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$a.afterTags,Za.afterTags,Ya.afterTags),beforeWords:Object.assign({},$a.beforeWords,Za.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$a.afterWords,Za.afterWords,{to:void 0})};const eo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},to={},no={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ro={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ao={beforeTags:Object.assign({},Sa.beforeTags,La.beforeTags,eo),afterTags:Object.assign({},Sa.afterTags,La.afterTags,to),beforeWords:Object.assign({},Sa.beforeWords,La.beforeWords,no),afterWords:Object.assign({},Sa.afterWords,La.afterWords,ro)};var oo={beforeTags:Object.assign({},Za.beforeTags,La.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Za.afterTags,La.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Za.beforeWords,La.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Za.afterWords,La.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const io="Person";var so={beforeTags:{Honorific:io,Person:io,Preposition:io},afterTags:{Person:io,ProperNoun:io,Verb:io},ownTags:{ProperNoun:io},beforeWords:{hi:io,hey:io,yo:io,dear:io,hello:io},afterWords:{said:io,says:io,told:io,tells:io,feels:io,felt:io,seems:io,thinks:io,thought:io,spends:io,spendt:io,plays:io,played:io,sing:io,sang:io,learn:io,learned:io,wants:io,wanted:io}};const lo="Month",uo={beforeTags:{Date:lo,Value:lo},afterTags:{Date:lo,Value:lo},beforeWords:{by:lo,in:lo,on:lo,during:lo,after:lo,before:lo,between:lo,until:lo,til:lo,sometime:lo,of:lo,this:lo,next:lo,last:lo,previous:lo,following:lo},afterWords:{sometime:lo,in:lo,of:lo,until:lo,the:lo}};var co={beforeTags:Object.assign({},so.beforeTags,uo.beforeTags),afterTags:Object.assign({},so.afterTags,uo.afterTags),beforeWords:Object.assign({},so.beforeWords,uo.beforeWords),afterWords:Object.assign({},so.afterWords,uo.afterWords)};const ho={Place:"Place"},mo={Place:"Place",Abbreviation:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},go={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fo="Unit";const vo={"Adj|Gerund":Ha,"Adj|Noun":Ja,"Adj|Past":Qa,"Adj|Present":Xa,"Noun|Verb":oo,"Noun|Gerund":ao,"Person|Noun":{beforeTags:Object.assign({},La.beforeTags,so.beforeTags),afterTags:Object.assign({},La.afterTags,so.afterTags),beforeWords:Object.assign({},La.beforeWords,so.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},La.afterWords,so.afterWords)},"Person|Date":co,"Person|Verb":{beforeTags:Object.assign({},so.beforeTags,Za.beforeTags),afterTags:Object.assign({},so.afterTags,Za.afterTags),beforeWords:Object.assign({},so.beforeWords,Za.beforeWords),afterWords:Object.assign({},so.afterWords,Za.afterWords)},"Person|Place":{beforeTags:Object.assign({},ho,so.beforeTags),afterTags:Object.assign({},mo,so.afterTags),beforeWords:Object.assign({},po,so.beforeWords),afterWords:Object.assign({},go,so.afterWords)},"Unit|Noun":{beforeTags:{Value:fo},afterTags:{},beforeWords:{per:fo,every:fo,each:fo,square:fo,cubic:fo,sq:fo,metric:fo},afterWords:{per:fo,squared:fo,cubed:fo,long:fo}}},bo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};vo["Plural|Verb"]={beforeWords:bo(vo["Noun|Verb"].beforeWords,{}),afterWords:bo(vo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bo(vo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bo(vo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yo=vo;const wo="Adjective",Po="Infinitive",ko="PresentTense",Ao="Singular",jo="PastTense",No="Adverb",xo="Plural",Eo="Verb",Io="LastName",To="Participle";var Go=[null,null,{ea:Ao,ia:"Noun",ic:wo,ly:No,"'n":Eo,"'t":Eo},{oed:jo,ued:jo,xed:jo," so":No,"'ll":"Modal","'re":"Copula",azy:wo,eer:"Noun",end:Eo,ped:jo,ffy:wo,ify:Po,ing:"Gerund",ize:Po,ibe:Po,lar:wo,mum:wo,nes:ko,nny:wo,ous:wo,que:wo,rol:Ao,sis:Ao,ogy:Ao,oid:Ao,ian:Ao,zes:ko,eld:jo,ken:To,ven:To,ten:To,ect:Po,ict:Po,ign:Po,ful:wo,bal:wo},{amed:jo,aped:jo,ched:jo,lked:jo,rked:jo,reed:jo,nded:jo,mned:wo,cted:jo,dged:jo,ield:Ao,akis:Io,cede:Po,chuk:Io,czyk:Io,ects:ko,ends:Eo,enko:Io,ette:Ao,wner:Ao,fies:ko,fore:No,gate:Po,gone:wo,ices:xo,ints:xo,ruct:Po,ines:xo,ions:xo,less:wo,llen:wo,made:wo,nsen:Io,oses:ko,ould:"Modal",some:wo,sson:Io,tion:Ao,tage:"Noun",ique:Ao,tive:wo,tors:"Noun",vice:Ao,lier:Ao,fier:Ao,wned:jo,gent:Ao,tist:Ao,pist:Ao,rist:Ao,mist:Ao,yist:Ao,vist:Ao,lite:Ao,site:Ao,rite:Ao,mite:Ao,bite:Ao,mate:Ao,date:Ao,ndal:Ao,vent:Ao,uist:Ao,gist:Ao,note:Ao,cide:Ao,wide:wo,vide:Po,ract:Po,duce:Po,pose:Po,eive:Po,lyze:Po,lyse:Po,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:jo,urned:jo,eased:jo,ances:xo,bound:wo,ettes:xo,fully:No,ishes:ko,ities:xo,marek:Io,nssen:Io,ology:"Noun",osome:Ao,tment:Ao,ports:xo,rough:wo,tches:ko,tieth:"Ordinal",tures:xo,wards:No,where:No,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ao,scent:Ao,onist:Ao,anist:Ao,alist:Ao,olist:Ao,icist:Ao,ounce:Po,iable:wo,borne:wo,gnant:wo,inant:wo,igent:wo,atory:wo,rient:Ao,dient:Ao},{auskas:Io,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Io,borough:"Place",sdottir:Io}];const Do="Adjective";var Co=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Do,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Do,tele:"Noun","pro-":Do,"mis-":"Verb","dis-":"Verb","pre-":Do},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Do,radio:"Noun",tetra:"Noun","omni-":Do,"post-":Do},{pseudo:Do,"extra-":Do,"hyper-":Do,"inter-":Do,"intra-":Do,"deca-":Do},{electro:"Noun"}];const Oo="Adjective",Vo="Infinitive",Bo="PresentTense",zo="Singular",$o="PastTense",Fo="Expression",So="LastName";var Ho={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,So],[/.[^aeiou]ica$/,zo,"harmonica"],[/^([hyj]a+)+$/,Fo,"haha"]],c:[[/.[^aeiou]ic$/,Oo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,$o,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,$o,"rammed"],[/.[aeiou][sg]hed$/,$o,"gushed"],[/.[aeiou]red$/,$o,"hired"],[/.[aeiou]r?ried$/,$o,"hurried"],[/[^aeiou]ard$/,zo,"steward"],[/[aeiou][^aeiou]id$/,Oo,""],[/.[vrl]id$/,Oo,"livid"],[/..led$/,$o,"hurled"],[/.[iao]sed$/,$o,""],[/[aeiou]n?[cs]ed$/,$o,""],[/[aeiou][rl]?[mnf]ed$/,$o,""],[/[aeiou][ns]?c?ked$/,$o,"bunked"],[/[aeiou]gned$/,$o],[/[aeiou][nl]?ged$/,$o],[/.[tdbwxyz]ed$/,$o],[/[^aeiou][aeiou][tvx]ed$/,$o],[/.[cdflmnprstv]ied$/,$o,"emptied"]],e:[[/.[lnr]ize$/,Vo,"antagonize"],[/.[^aeiou]ise$/,Vo,"antagonise"],[/.[aeiou]te$/,Vo,"bite"],[/.[^aeiou][ai]ble$/,Oo,"fixable"],[/.[^aeiou]eable$/,Oo,"maleable"],[/.[ts]ive$/,Oo,"festive"],[/[a-z]-like$/,Oo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oo,"cornish"],[/.v[iy]ch$/,So,"..ovich"],[/^ug?h+$/,Fo,"ughh"],[/^uh[ -]?oh$/,Fo,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,So,"polish-male"]],k:[[/^(k){2}$/,Fo,"kkkk"]],l:[[/.[gl]ial$/,Oo,"familial"],[/.[^aeiou]ful$/,Oo,"fitful"],[/.[nrtumcd]al$/,Oo,"natal"],[/.[^aeiou][ei]al$/,Oo,"familial"]],m:[[/.[^aeiou]ium$/,zo,"magnesium"],[/[^aeiou]ism$/,zo,"schism"],[/^[hu]m+$/,Fo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Fo,"noooo"],[/^(yo)+$/,Fo,"yoo"],[/^wo{2,}[pt]?$/,Fo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,zo],[/[^i]fer$/,Vo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Bo],[/.[rln]ates$/,Bo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,zo],[/.[aeiou]sks$/,Bo],[/.[aeiou]kes$/,Bo],[/[aeiou][^aeiou]is$/,zo],[/[a-z]'s$/,"Noun"],[/^yes+$/,Fo]],v:[[/.[^aeiou][ai][kln]ov$/,So]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,zo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,"Adverb"],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,zo]]};const Mo="Verb",Lo="Noun";var Wo={leftTags:[["Adjective",Lo],["Possessive",Lo],["Determiner",Lo],["Adverb",Mo],["Pronoun",Mo],["Value",Lo],["Ordinal",Lo],["Modal",Mo],["Superlative",Lo],["Demonym",Lo],["Honorific","Person"]],leftWords:[["i",Mo],["first",Lo],["it",Mo],["there",Mo],["not",Mo],["because",Lo],["if",Lo],["but",Lo],["who",Mo],["this",Lo],["his",Lo],["when",Lo],["you",Mo],["very","Adjective"],["old",Lo],["never",Mo],["before",Lo],["a","Singular"],["the",Lo],["been",Mo]],rightTags:[["Copula",Lo],["PastTense",Lo],["Conjunction",Lo],["Modal",Lo]],rightWords:[["there",Mo],["me",Mo],["man","Adjective"],["only",Mo],["him",Mo],["it",Mo],["were",Lo],["took",Lo],["himself",Mo],["went",Lo],["who",Lo],["jr","Person"]]},Jo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},qo={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ko={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Uo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ro={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qo=/^.([0-9]+)/;var _o=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qo,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},Yo=/^([0-9]+)/,Xo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Yo);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Yo,"")]}(n[0],n[1])})};var ei=function(e={}){return(e=Object.assign({},e)).rules=Xo(e.rules),e.rules=Zo(e.rules),e.rev&&(e.rev=Xo(e.rev),e.rev=Zo(e.rev)),e.exceptions=Xo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ti=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ni=ei({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ri=ei(Uo),ai=ei(qo),oi=ei(Ko),ii=ti(ni),si=ti(ri),li=ti(ai),ui=ti(oi),ci=ei(Jo),hi=ei(Ro);var di={fromPast:ni,fromPresent:ri,fromGerund:ai,fromParticiple:oi,toPast:ii,toPresent:si,toGerund:li,toParticiple:ui,toComparative:ci,toSuperlative:hi,fromComparative:ti(ci),fromSuperlative:ti(hi)},mi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),pi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var gi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(fi[t].forEach(n=>e[n]=t),e),{});var vi=fi;var bi=function(e){let t=e.substring(e.length-3);if(!0===vi.hasOwnProperty(t))return vi[t];let n=e.substring(e.length-2);return!0===vi.hasOwnProperty(n)?vi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var wi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=bi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=_o(l,i);else if("PastTense"===n)c=_o(l,r);else if("PresentTense"===n)c=_o(l,a);else{if("Gerund"!==n)return e;c=_o(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Pi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:_o(i,n),PresentTense:_o(i,r),Gerund:_o(i,a),FutureTense:"will "+e},u=_o(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var ki=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ai="ically",ji=new Set(["analyt"+Ai,"chem"+Ai,"class"+Ai,"clin"+Ai,"crit"+Ai,"ecolog"+Ai,"electr"+Ai,"empir"+Ai,"frant"+Ai,"grammat"+Ai,"ident"+Ai,"ideolog"+Ai,"log"+Ai,"mag"+Ai,"mathemat"+Ai,"mechan"+Ai,"med"+Ai,"method"+Ai,"method"+Ai,"mus"+Ai,"phys"+Ai,"phys"+Ai,"polit"+Ai,"pract"+Ai,"rad"+Ai,"satir"+Ai,"statist"+Ai,"techn"+Ai,"technolog"+Ai,"theoret"+Ai,"typ"+Ai,"vert"+Ai,"whims"+Ai]),Ni=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],xi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ei={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ii=function(e){return e.endsWith("ly")?ji.has(e)?e.replace(/ically/,"ical"):xi.has(e)?null:Ei.hasOwnProperty(e)?Ei[e]:ki(e,Ni)||e:null};const Ti=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Gi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Di=function(e){if(Gi.hasOwnProperty(e))return Gi[e];let t=ki(e,Ti);return t||e+"ly"};const Ci=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Oi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Vi=new Set(["terrible","annoying"]);const Bi=function(e,t){const n=t.two.models.toSuperlative;return _o(e,n)},zi=function(e,t){const n=t.two.models.toComparative;return _o(e,n)};var $i={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Fi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===$i.hasOwnProperty(i)&&$i[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Da,nounToSingular:gi,verbToInfinitive:wi,getTense:bi,verbConjugate:Pi,adjToSuperlative:Bi,adjToComparative:zi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return _o(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return _o(e,n)},advToAdjective:Ii,adjToAdverb:Di,adjToNoun:function(e){if(Oi.hasOwnProperty(e))return Oi[e];if(Vi.has(e))return null;let t=ki(e,Ci);return t||e+"ness"}}}};var Si=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Hi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Mi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Hi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Hi(r,"Infinitive","Verb"),Object.assign(s,l),l=Hi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Hi(o,"Adjective","Superlative"),Object.assign(s,l),l=Hi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Li={two:{models:di}};const Wi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ji=function(e,t){const n={model:t,methods:Fi};let{lex:r,_multi:a}=Fi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},qi=function(e,t,n){let r=Pi(e,Li);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ki=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Wi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||qi(a,r,!1),"Adj|Present"===o&&(qi(a,r,!0),function(e,t,n){let r=Bi(e,n);t[r]=t[r]||"Superlative";let a=zi(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(a,Li,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=wi(a,Li,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ji(n,t)};let Ui={one:{_multiCache:{},lexicon:Oa},two:{irregularPlurals:wa,models:di,suffixPatterns:Go,prefixPatterns:Co,endsWith:Ho,neighbours:Wo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Va,clues:yo,uncountable:{},orgWords:mi}};Ui=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Ji(e.one.lexicon,e)).one.lexicon,e),e=Ki(e.two.switches,e),e=Mi(e),e=Si(e)}(Ui);var Ri=Ui;const Qi=/^(under|over|mis|re|un|dis|semi)-?/;var _i=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(Qi.test(a.normal)){let e=a.normal.replace(Qi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var Zi=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const Yi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Xi=new Set(["formulas","koalas","israelis","menus"]),es=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ts=function(e){if(!e||e.length<=3)return!1;if(Xi.has(e))return!0;let t=e[e.length-1];return Yi.hasOwnProperty(t)?Yi[t].find(t=>e.endsWith(t)):"s"===t&&!es.find(t=>e.endsWith(t))};const ns=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var rs=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ts(e.normal)?Zi(e,"Plural","3-plural-guess"):Zi(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=bi(e.normal);t&&Zi(e,t,"3-verb-tense-guess")}}(r)};const as=/^\p{Lu}[\p{Ll}'’]/u,os=/[0-9]/,is=["Date","Month","WeekDay","Unit"],ss=/^[IVXLCDM]{2,}$/,ls=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,us={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var cs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===as.test(o)&&!1===os.test(o)?is.find(e=>r.tags.has(e))?null:(rs(e,t,n),r.tags.has("Noun")||r.tags.clear(),Zi(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ss.test(o)&&ls.test(o)&&!us[r.normal]?(Zi(r,"RomanNumeral","2-xvii"),!0):null};const hs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var ds=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=hs(r.normal,n.two.suffixPatterns);if(null!==e)return Zi(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=hs(r.implicit,n.two.suffixPatterns),null!==e))return Zi(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const ms=/['‘’‛‵′`´]/,ps=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return Zi(r,e,"2-prefix"),r.confidence=.5,!0}return null};const vs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),bs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!vs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ys=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ws=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ps=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(bs(a)||bs(o))return Zi(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ys(a)||ys(o))return Zi(n,"Year","2-tagYear-close");if(ws(e[t-2])||ws(e[t+2]))return Zi(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return Zi(n,"Year","2-tagYear-noun")}}}return null};const ks=/^[A-Z]('s|,)?$/,As=/^[A-Z-]+$/,js=/([A-Z]\.)+[A-Z]?,?$/,Ns=/[A-Z]{2,}('s|,)?$/,xs=/([a-z]\.)+[a-z]\.?$/,Es={I:!0,A:!0};var Is=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===As.test(n)||n.length>5||Es.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==js.test(n)&&!0!==xs.test(n)&&!0!==ks.test(n)&&!0!==Ns.test(n))}(r,n)?(r.tags.clear(),Zi(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Es.hasOwnProperty(r.text)&&ks.test(r.text)?(r.tags.clear(),Zi(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Zi(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&As.test(r.text)&&r.text.length<=6?(Zi(r,"Acronym","3-titlecase-acronym"),!0):null};const Ts=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Gs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ds=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ts(e[t-1],a),l=l||Ts(e[t+1],o),l=l||Gs(e[t-1],r),l=l||Gs(e[t+1],i),l)return Zi(s,l,"3-[neighbour]"),rs(e,t,n),e[t].confidence=.2,!0}return null};const Cs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Os=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Cs(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Cs(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Vs=function(e,t,n){0===e[t].tags.size&&(Zi(e[t],"Noun","3-[fallback]"),rs(e,t,n),e[t].confidence=.1)};const Bs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,zs=(e,t,n)=>0!==t||e[1]?null:n;var $s={"Adj|Gerund":(e,t)=>Bs(e,t),"Adj|Noun":(e,t)=>Bs(e,t),"Adj|Past":(e,t)=>Bs(e,t),"Adj|Present":(e,t)=>Bs(e,t),"Noun|Gerund":(e,t)=>Bs(e,t),"Noun|Verb":(e,t)=>Bs(e,t)||zs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Bs(e,t)||zs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Bs(e,t),"Person|Verb":(e,t)=>0!==t&&Bs(e,t)};const Fs="undefined"!=typeof process&&process.env?process.env:self.env||{},Ss=/^(under|over|mis|re|un|dis|semi)-?/,Hs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Fs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ms=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Fs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Ls={tagSwitch:_i,checkSuffix:ds,checkRegex:gs,checkCase:cs,checkPrefix:fs,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(Zi(o,"Verb","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Zi(o,"Adjective","3-[prefix]"),Zi(o,"Prefix","3-[prefix]")))},checkYear:Ps},Ws={checkAcronym:Is,neighbours:Ds,orgWords:Os,nounFallback:Vs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ss.test(l)&&!o[l]&&(l=l.replace(Ss,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Hs(e[t+1],n.afterWords);return o=o||Hs(e[t-1],n.beforeWords),o=o||Ms(e[t-1],n.beforeTags,a),o=o||Ms(e[t+1],n.afterTags,a),o}(e,t,i[o],r);$s[o]&&(u=$s[o](e,t)||u),u?a([s],u,n,null,`3-[variable] (${o})`):Fs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Js=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Us={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Rs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const sl=/'/;var ll=function(e,t){let n=e[t].normal.split(sl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var ul=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const cl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},hl={in:!0,by:!0,for:!0};var dl=(e,t)=>{let n=e[t];if(cl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===hl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const ml=/'/,pl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},gl={d:(e,t)=>ll(e,t),t:(e,t)=>ul(e,t),s:(e,t,n)=>dl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):il(e,t)},fl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var vl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===ml.test(r[o].normal)&&([,i]=r[o].normal.split(ml));let s=null;gl.hasOwnProperty(i)&&(s=gl[i](r,o,t)),s&&(s=fl(s,e),al(n,[a,o],s),pl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=rl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=nl},hooks:["contractionTwo"]};const bl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const yl=["i","we","they"];let wl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:bl+" #Person",tag:"Person",reason:"randy-smith"},{match:bl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${bl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:yl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:yl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:yl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Pl=null;var kl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Pl=Pl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Pl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:wl}},hooks:["postTagger"]};var Al=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))};var jl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Al(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};var Nl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var xl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Nl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var El={api:function(e){e.prototype.swap=xl}};p.plugin(Xs),p.plugin(vl),p.plugin(kl),p.plugin(jl),p.plugin(El);var Il=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Tl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Gl={this:"Noun",then:"Pivot"};var Dl=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Sl={compute:{chunks:function(e){const{document:t,world:n}=e;Dl(t),Cl(t),Bl(e,t,n),$l(t),Fl(t)}},api:function(e){e.prototype.chunks=Tl,e.prototype.clauses=Il},hooks:["chunks"]};const Hl=/'s$/;var Ml=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Ll=/\(/,Wl=/\)/,Jl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ll,"");let t=e[e.length-1];t.post=t.post.replace(Wl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Kl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ul=RegExp("("+Object.keys(Kl).join("|")+")"),Rl=RegExp("("+Object.values(Kl).join("|")+")"),Ql=function(e,t){const n=e[t].pre.match(Ul)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Ul,"");let t=e[e.length-1];t.post=t.post.replace(Rl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Zl=/\./g;var Yl=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var Xl=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const eu=(e,t)=>"number"==typeof t?e.eq(t):e,tu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var nu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=tu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=eu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=eu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=eu(t,e),new Adjectives(t.document,t.pointer)}};const ru=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},au=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let ou=[["emojis","emoji"],["atmentions","atMentions"]];var iu=function(e){au.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=ru,ou.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},su={api:function(e){iu(e),Ml(e),ql(e),_l(e),nu(e),Xl(e),Yl(e)}};const lu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var uu={case:e=>{lu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;lu(e,e=>e.text=n(e.text,t))},whitespace:e=>{lu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{lu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const cu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),hu="unicode|punctuation|whitespace|acronyms",du="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var pu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[t](this,e[t])}),this}}};var gu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const fu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var vu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var yu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:bu(e,t),isSubordinate:vu(e),root:t}};const wu=e=>e.text(),Pu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),ku=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Au=function(e){let t=yu(e);return{root:wu(t.root),number:ku(t.number),determiner:wu(t.determiner),adjectives:Pu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const ju={tags:!0};var Nu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,ju).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",ju),e};const xu={tags:!0};var Eu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,xu).tag("Singular","toPlural"),e};const Iu=(e,t)=>"number"==typeof t?e.eq(t):e;var Tu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Iu(this,e).map(yu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Au(t)),n},[])}isPlural(e){let t=this.filter(e=>yu(e).isPlural);return Iu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=yu(e).adjectives;n.found&&(t=t.concat(n))}),Iu(t,e)}toPlural(e){return Iu(this,e).map(e=>Nu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return Eu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=gu(this);return t=Iu(t,e),new Nouns(this.document,t.pointer)}}};var Gu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Du=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Cu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Cu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Cu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Vu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const zu=/^([0-9,. ]+)\/([0-9,. ]+)$/,$u={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Fu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Su=function(e){if(!0===$u.hasOwnProperty(e))return $u[e];if("a"===e||"an"===e)return 1;const t=Du(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Mu(n),r=Mu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Mu(n);let a=r.text("reduced");return Hu.test(a)&&(a=a.replace(Hu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[a]:Mu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Mu(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var Ju=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const qu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ku=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Uu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ru=function(e){let t=[];if(e>100)return t;for(let n=0;n=qu[n][1]&&(e-=qu[n][1],t.push(qu[n][0]));return Ku[e]&&t.push(Ku[e]),t};var Qu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ju(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Uu.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ru(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ju(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var _u=function(e){if(!e.numerator||!e.denominator)return"";return`${Qu({num:e.numerator})} out of ${Qu({num:e.denominator})}`};const Zu={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Yu=e=>{let t=Qu(e).split(" "),n=t[t.length-1];return Zu.hasOwnProperty(n)?t[t.length-1]=Zu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Xu=function(e){if(!e.numerator||!e.denominator)return"";let t=Qu({num:e.numerator}),n=Yu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const ec=(e,t)=>"number"==typeof t?e.eq(t):e;var tc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return ec(this,e).map(Wu)}get(e){return ec(this,e).map(Wu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Wu(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return ec(this,e).forEach(e=>{let t=Wu(e),n=Xu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Wu(e),n=_u(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Wu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Gu(this);return t=ec(t,e),new Fractions(this.document,t.pointer)}};const nc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var rc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+nc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+nc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+nc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+nc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${nc})`),r=e.has("("+nc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+nc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+nc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var ac=function(e){if("string"==typeof e)return{num:Su(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Wu(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Su(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var oc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ju(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const ic={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},sc={"%":"percent","°":"degrees"};var lc=function(e){let t={suffix:"",prefix:e.prefix};return ic.hasOwnProperty(e.prefix)&&(t.suffix+=" "+ic[e.prefix],t.prefix=""),sc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+sc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var uc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=lc(e);return t+Yu(e)+n}if("Ordinal"===t)return e.prefix+oc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=lc(e);return t+Qu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const cc=(e,t)=>"number"==typeof t?e.eq(t):e;var hc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return cc(this,e).map(ac)}get(e){return cc(this,e).map(ac).map(e=>e.num)}json(e){return cc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ac(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=ac(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=uc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ac(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=uc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>ac(t).num===e)}greaterThan(e){return this.filter(t=>ac(t).num>e)}lessThan(e){return this.filter(t=>ac(t).num{let r=ac(n).num;return r>e&&r{let n=ac(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=uc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=ac(e).num);let t=this.map(t=>{let n=ac(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=uc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=rc(this);return t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=rc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=rc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var dc={api:function(e){tc(e),hc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},pc=function(e={}){return!1!==(e=Object.assign({},mc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var gc={api:function(e){e.prototype.redact=pc}};var fc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var vc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var bc=function(e){let t=e.clauses(),n=vc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var yc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var wc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Pc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var kc=function(e){return e.verbs().toInfinitive(),e};const Ac=(e,t)=>"number"==typeof t?e.eq(t):e;var jc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=bc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ac(this,e).map(e=>(bc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(bc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(bc(e),e=Pc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(bc(e),kc(e)))}toNegative(e){return Ac(this,e).map(e=>(bc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(this,e).map(e=>(bc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ac(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ac(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ac(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=fc(this);return Ac(t,e)}};Object.assign(e.prototype,t)}};var Nc=function(e){return e.match("#Honorific+? #Person+")};var xc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Ec="male",Ic="female",Tc={mr:Ec,mrs:Ic,miss:Ic,madam:Ic,king:Ec,queen:Ic,duke:Ec,duchess:Ic,baron:Ec,baroness:Ic,count:Ec,countess:Ic,prince:Ec,princess:Ic,sire:Ec,dame:Ic,lady:Ic,ayatullah:Ec,congressman:Ec,congresswoman:Ic,"first lady":Ic,mx:null};var Gc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Ic;if(n.has("#MaleName"))return Ec;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Tc.hasOwnProperty(e))return Tc[e];if(/^her /.test(e))return Ic;if(/^his /.test(e))return Ec}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Ec;if(n&&!t)return Ic}return null};const Dc=(e,t)=>"number"==typeof t?e.eq(t):e;var Cc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Dc(this,e).map(xc)}json(e){return Dc(this,e).map(t=>{let n=t.toView().json(e)[0],r=xc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Gc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Nc(this);return t=Dc(t,e),new People(this.document,t.pointer)}};var Oc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var Vc=function(e){e.prototype.places=function(t){let n=Oc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Bc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const zc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var $c=function(e){e.prototype.topics=zc};var Fc={api:function(e){Cc(e),Vc(e),Bc(e),$c(e)}};var Sc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Hc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Mc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Lc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Wc=function(e){return e.match("#Negative")},Jc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var qc=function(e){let t=e.clone();t.contractions().expand();const n=Hc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Mc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:Jc(n)}};const Kc={tense:"PresentTense"},Uc={conditional:!0},Rc={tense:"FutureTense"},Qc={progressive:!0},_c={tense:"PastTense"},Zc={complete:!0,progressive:!1},Yc={passive:!0},Xc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},eh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Kc]],["^wanted to #Infinitive$",[_c]],["^will want to #Infinitive$",[Rc]]],"gerund-phrase":[["^#PastTense #Gerund$",[_c]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Rc]],["^have #PastTense #Gerund$",[_c]],["^will have #PastTense #Gerund$",[_c]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[_c]]],"simple-future":[["^will #Adverb? #Infinitive",[Rc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,Qc]]],"past-progressive":[["^(was|were) #Gerund$",[_c,Qc]]],"future-progressive":[["^will be #Gerund$",[Rc,Qc]]],"present-perfect":[["^(has|have) #PastTense$",[_c,Zc]]],"past-perfect":[["^had #PastTense$",[_c,Zc]],["^had #PastTense to #Infinitive",[_c,Zc]]],"future-perfect":[["^will have #PastTense$",[Rc,Zc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[_c,Qc]]],"past-perfect-progressive":[["^had been #Gerund$",[_c,Qc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Rc,Qc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[_c,Yc]],["^(was|were) being (#PastTense|#Participle)",[_c,Yc]],["^(had|have) been (#PastTense|#Participle)",[_c,Yc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Kc,Yc]],["^(is|are|am) being (#PastTense|#Participle)",[Kc,Yc]],["^has been (#PastTense|#Participle)",[Kc,Yc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Rc,Yc,Uc]],["will be being? (#PastTense|#Participle)",[Rc,Yc,Uc]]],"present-conditional":[["would be #PastTense",[Kc,Uc]]],"past-conditional":[["would have been #PastTense",[_c,Uc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Rc]]],"auxiliary-past":[["^did #Infinitive$",[_c,{plural:!1}]],["^used to #Infinitive$",[_c,Zc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,Zc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[_c]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let th=[];Object.keys(eh).map(e=>{eh[e].forEach(t=>{th.push({name:e,match:t[0],data:Xc(t[1])})})});var nh=th;var rh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),ah(r)&&(n.remove(r),r=n.last()),ah(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:oh(t,e)}};const sh=e=>e,lh=(e,t)=>{let n=ih(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},uh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ih(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ch=function(e,t){let n=ih(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},hh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},dh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,hh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ph=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},gh=function(e){return e&&e.isView?e.text("normal"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var vh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:ph(t.adverbs.pre),postAdverbs:ph(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const bh={tags:!0};var yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,hh(r)),i&&e.replace(r,i,bh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ch(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const wh={tags:!0},Ph={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,hh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ih(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,wh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ph.simple(e,t),e=Ph.noAux(e,t))},hasHad:e=>(e.replace("has","had",wh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),n(o,e.model).Participle}},kh={infinitive:Ph.simple,"simple-present":Ph.simple,"simple-past":sh,"simple-future":Ph.both,"present-progressive":e=>(e.replace("are","were",wh),e.replace("(is|are|am)","was",wh),e),"past-progressive":sh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ph.hasHad,"past-perfect":sh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=mh(e)),e.remove("have"),e),"present-perfect-progressive":Ph.hasHad,"past-perfect-progressive":sh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",wh),e),"passive-past":e=>(e.replace("have","had",wh),e),"passive-present":e=>(e.replace("(is|are)","was",wh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",wh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":sh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",wh),e),"auxiliary-past":sh,"auxiliary-present":e=>(e.replace("(do|does)","did",wh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",wh):(Ph.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":sh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",wh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ph.simple(e,t),mh(e),e)};var Ah=function(e,t,n){return kh.hasOwnProperty(n)?((e=kh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const jh={tags:!0},Nh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),!1===lh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=uh(e)),o&&(e=e.replace(a,o,jh)).not("#Particle").tag("PresentTense"),e},xh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),!1===lh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,jh)).not("#Particle").tag("Gerund"),e},Eh={infinitive:Nh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Nh(e,t);{let t=ih(e).subject;if(lh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,jh)}return e},"simple-past":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=uh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Nh(e,t),e=e.remove("will");return e},"present-progressive":sh,"past-progressive":(e,t)=>{let n=uh(e);return e.replace("(were|was)",n,jh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ih(e).subject;return lh(e)||n.has("i")?((e=dh(e,t)).remove("had"),e):(e.replace("had","has",jh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":sh,"past-perfect-progressive":e=>e.replace("had","has",jh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=uh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,jh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":sh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":sh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(xh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ch(e);return e.replace(t.auxiliary,n),e}return xh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":sh,"modal-infinitive":sh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,hh(r)),a&&(e=e.replace(t.root,a,jh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return lh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,jh),e.remove("will"),e}};var Ih=function(e,t,n){return Eh.hasOwnProperty(n)?((e=Eh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Th={tags:!0},Gh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,hh(r)),o&&(e=e.replace(r,o,Th)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Dh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,hh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Th),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Ch={infinitive:Gh,"simple-present":Gh,"simple-past":Gh,"simple-future":sh,"present-progressive":Dh,"past-progressive":Dh,"future-progressive":sh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":sh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":sh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":sh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":sh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":sh,"modal-past":sh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Gh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Oh=function(e,t,n){return e.has("will")||e.has("going to")?e:Ch.hasOwnProperty(n)?((e=Ch[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Vh={tags:!0};var Bh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,hh(a));let s=r(i,e.model).Gerund;return s&&(s=`${uh(e)} ${s}`,e.replace(a,s,Vh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const zh={tags:!0},$h=function(e,t){let n=ch(e);return e.prepend(n+" not"),e},Fh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Sh=e=>e.has("(is|was|am|are|will|were|be)"),Hh={"simple-present":(e,t)=>!0===Sh(e)?Fh(e):(e=dh(e,t),e=$h(e)),"simple-past":(e,t)=>!0===Sh(e)?Fh(e):((e=dh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Sh(e)?Fh(e):$h(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",zh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=$h(e)).replace("wants","want",zh)};var Mh=function(e,t,n){if(e.has("#Negative"))return e;if(Hh.hasOwnProperty(n))return e=Hh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Sh(e)?Fh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Lh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Lh(this,e).map(qc)}json(e,t){return Lh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=vh(t),n},[])}subjects(e){return Lh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Bh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:yh(e.clone(),t,n.form).text("normal"),PastTense:Ah(e.clone(),t,n.form).text("normal"),PresentTense:Ih(e.clone(),t,n.form).text("normal"),FutureTense:Oh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Mh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Sc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};p.plugin(Sl),p.plugin(su),p.plugin(pu),p.plugin(Tu),p.plugin(dc),p.plugin(gc),p.plugin(jc),p.plugin(Fc),p.plugin(Wh);export{p as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var a=r;const o=Object.assign({},a,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(l(n))for(const r in n)l(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let d=Object.assign({},e);const m=function(e,t){t&&m.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(e,t){const{compute:n}=this._world;t&&m.addWords(t);let r=h(e,s,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(e){return u(e,this._world,s,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},m.version="14.4.0";var p=m;const g={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,g)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),b=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},P=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!v(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||v(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),b(e,o,n)};let k=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var j=function(e){let[t,n]=e.index||[0,0];k+=1,k=k>46655?0:k,t=t>46655?0:t,n=n>1294?0:n;let r=A(k.toString(36));r+=A(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const N=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},E=e=>"[object Array]"===Object.prototype.toString.call(e),x=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:E(e)?E(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=j(e),e))}(d),n?(N(t.update([u]).firstTerm()),P(h,u,d,r)):(N(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(T,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},D.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var C=D;var O=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=O(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};B.delete=B.remove;var V=B;const z={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};z.deHyphenate=z.dehyphenate,z.toQuotation=z.toQuotations;var $=z;var F={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),M=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return S.has(e)&&(e="sequential"),M.has(e)&&(e="alpha"),H.has(e)?(a=F.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof F[e]?(a=a.sort(F[e]),this.update(a.map(e=>e.pointer))):this}};const W=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var J={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return b(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=W(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=W(this.document,e);return this.document=t,this.all()}var a;return this}};var q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const K=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},G,C,V,$,L,J,q);var U={api:function(e){Object.assign(e.prototype,K)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Q=/'/,Z=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(Z.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var re=(e,t)=>["je",e[t].normal.split(ne)[1]],ae=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],r=n.text.match(ie);return null!==r?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(se),null!==r?[r[1],"to",r[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const me=/'/,pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},ve={j:(e,t)=>re(e,t),l:(e,t)=>ae(e,t),d:(e,t)=>oe(e,t)},be=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===me.test(r[s].normal)&&([l,u]=r[s].normal.split(me));let c=be(o,r[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](r,s,t)),!c&&ve.hasOwnProperty(l)&&(c=ve[l](r,s)),c?(c=ye(c,e),_(n,[i,s],c),ge(n[i],e,s,c.length)):pe.test(r[s].normal)?(c=ue(r,s),c&&(c=ye(c,e),_(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ge(n[i],e,s,c.length))):(c=de(r,s),c&&(c=ye(c,e),_(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var Pe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===ke.test(l)){let e=l.replace(ke,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ne={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var Ee=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const xe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Te=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var De=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Te(e.goNext,void 0),e.failTo=Te(e.failTo,0),e.endAs=Te(e.endAs,null),e};const Ce={buildTrie:function(e){const t=Ee(e,this.world());return De(t)}};Ce.compile=Ce.buildTrie;var Oe={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ee(e,this.world));var r;let a=Ge(this,n,t);return a=a.settle(),a}},lib:Ce};const Be=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Ve=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Be(n,t),Object.keys(r).forEach(e=>{r[e]=Be(r[e],t)}),{ptrs:n,byGroup:r}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),$e=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,Se=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var He={matchOne:function(e,t,n){const r=this.methods.one;if($e(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if($e(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Se(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ve(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if($e(e)){return e.fullPointer.length>0}if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Se(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if($e(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if($e(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var Me={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},We=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Je=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},qe={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=We(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Je(e,this)),this.update(o)}};qe.split=qe.splitAfter;var Ke=qe;const Ue=Object.assign({},He,Me,Ke);Ue.lookBehind=Ue.before,Ue.lookBefore=Ue.before,Ue.lookAhead=Ue.after,Ue.lookAfter=Ue.after,Ue.notIf=Ue.ifNo;var Re=function(e){Object.assign(e.prototype,Ue)};const _e=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ze=/ /g,Ye=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Xe=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var et=function(e){let t=e.split(_e),n=[];t.forEach(e=>{Ye(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Xe(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ye(e)?r.push(e):r=r.concat(e.split(Ze))}),r=Xe(r),r};const tt=/\{([0-9]+)?(, *[0-9]*)?\}/,nt=/&&/,rt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),ot=e=>e.charAt(e.length-1),it=e=>e.charAt(0),st=e=>e.substring(1),lt=e=>e.substring(0,e.length-1),ut=function(e){return e=st(e),e=lt(e)},ct=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ot(e)&&(n.end=!0,e=lt(e)),"^"===it(e)&&(n.start=!0,e=st(e)),("["===it(e)||"]"===ot(e))&&(n.group=null,"["===it(e)&&(n.groupStart=!0),"]"===ot(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===it(e))){const t=rt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ot(e)&&(n.greedy=!0,e=lt(e)),"*"!==e&&"*"===ot(e)&&"\\*"!==e&&(n.greedy=!0,e=lt(e)),"?"===ot(e)&&(n.optional=!0,e=lt(e)),"!"===it(e)&&(n.negative=!0,e=st(e)),"~"===it(e)&&"~"===ot(e)&&e.length>2&&(e=ut(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===it(e)&&")"===ot(e)){nt.test(e)?(n.choices=e.split(nt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=st(n.choices[0]);let r=n.choices.length-1;n.choices[r]=lt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ct(e,t))),e=""}if("/"===it(e)&&"/"===ot(e))return e=ut(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===it(e)&&"}"===ot(e)){if(e=ut(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===it(e)&&">"===ot(e))return e=ut(e),n.chunk=at(e),n.greedy=!0,n;if("%"===it(e)&&"%"===ot(e))return e=ut(e),n.switch=e,n}return!0===tt.test(e)&&(e=e.replace(tt,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===it(e)?(n.tag=st(e),n.tag=at(n.tag),n):"@"===it(e)?(n.method=st(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ht=ct;const dt=/[a-z0-9][-–—][a-z]/i;var mt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&dt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ft=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=et(e);return r=r.map(e=>ht(e,t)),r=mt(r,n),r=pt(r,n),r=gt(r),r};const vt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Nt=(e,t)=>-1!==e.pre.indexOf(t),Et={hasQuote:e=>wt.test(e.pre)||Pt.test(e.post),hasComma:e=>jt(e,","),hasPeriod:e=>!0===jt(e,".")&&!1===jt(e,"..."),hasExclamation:e=>jt(e,"!"),hasQuestionMark:e=>jt(e,"?")||jt(e,"¿"),hasEllipses:e=>jt(e,"..")||jt(e,"…")||Nt(e,"..")||Nt(e,"…"),hasSemicolon:e=>jt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>At.test(e.post)||At.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Et.hasQuotation=Et.hasQuote;var xt=Et;let It=function(){};It=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(yt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof xt[t.method]&&!0===xt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>It(e,t,n,r)):t.choices.some(t=>It(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var Gt=It;const Tt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Dt(e,e.t).length=r-e.t}return e.t=r,!0};const Ot=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Gt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Gt(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Dt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==Gt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var $t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Gt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Gt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ft=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var St=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Ht=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&$t(e),r.implicit&&e.terms[e.t+1]&&St(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ft(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Dt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Mt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Tt(e,a))if(!0!==Gt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!zt(a))return null}if(!0!==e.optional)return null}else{if(!Ht(a))return null}else{if(!Ht(a))return null}else{if(!Ht(a))return null}else{if(!Vt(a))return null}else{if(!Bt(a))return null}else{if(!Ct(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var Lt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Wt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Jt=function(e,t,n){let r=Mt(e,t,0,e.length);return r?(r=Wt(r,n),r):null};var qt={api:Re,methods:{one:{termMethods:xt,parseMatch:ft,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Jt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,Ut=/^#./,Rt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var _t={html:function(e){let{starts:t,ends:n}=Rt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(Zt,""),Xt.test(a)&&(a=" "),a=a.replace(Yt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Zt,""),a="-"===a?" ":a.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&en.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var rn=nn;let an=[],on=0;for(;on<64;)an[on]=0|4294967296*Math.sin(++on%Math.PI);function sn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(on=i=0;on>4]+an[i]+~~o[on|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const ln={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const cn=function(e,t){return Object.assign({},e,t)},hn={text:e=>tn(e,{keepPunct:!0},!1),normal:e=>tn(e,cn(rn.normal,{keepPunct:!0}),!1),implicit:e=>tn(e,cn(rn.implicit,{keepPunct:!0}),!1),machine:e=>tn(e,un,!1),root:e=>tn(e,cn(un,{form:"root"}),!1),hash:e=>sn(tn(e,{keepPunct:!0},!1)),offset:e=>{let t=hn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const dn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},ln,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&hn[o]&&(a[o]=hn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};dn.data=dn.json;var mn=dn;var pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var gn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(gn.blue("\n ──────")),t.forEach(e=>{console.log(gn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=gn.blue(" │ ")+gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return gn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var vn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${gn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const yn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&rn.hasOwnProperty(e)?t=Object.assign({},rn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},En=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var xn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var In={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:En,splitAll:xn}}};var Gn=function(e,t){let n=e.concat(t),r=En(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>Nn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Dn=function(e,t){let n=En(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>Nn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Bn={union:function(e){e=Cn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Bn.and=Bn.union,Bn.intersection=function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.not=function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.difference=Bn.not,Bn.complement=function(){let e=this.all(),t=Tn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Gn(e,[t])}),e=On(e,this.document),this.update(e)};var Vn={methods:In,api:function(e){Object.assign(e.prototype,Bn)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var $n=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Fn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var Sn=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Hn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Mn=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=$n(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Fn(a,t.hooks);return o=Sn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Hn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Mn(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Wn=/ /,Jn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},qn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Wn.test(t))!function(e,t,n,r){let a=t.split(Wn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),qn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,r))};var Un=Kn;var Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>_n({id:e})),t}return[_n({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),er=e=>(e=e||"").trim(),tr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Zn(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=_n({});return e.forEach(e=>{if((e=_n(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(_n),t);var t},nr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Yn(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},rr=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ar={text:nr,txt:nr,array:rr,flat:rr},or=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(nr(e,!0)),null):ar.hasOwnProperty(t)?ar[t](e):e},ir=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=er(e),!sr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||_n({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(er(e),t)),this;e=er(e);let n=_n({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=er(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ir(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ir(this.json),or(this.json,e)}debug(){return ir(this.json),or(this.json,"debug"),this}}const lr=function(e){let t=tr(e);return new g$1(t)};lr.prototype.plugin=function(e){e(this)};var ur={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const cr=function(e){if(ur.hasOwnProperty(e.id))return ur[e.id];if(ur.hasOwnProperty(e.is))return ur[e.is];let t=e._cache.parents.find(e=>ur[e]);return ur[t]};var hr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:cr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const dr=function(e){return e?"string"==typeof e?[e]:e:[]};var mr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=dr(e[t].children),e[t].not=dr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var pr={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=mr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return lr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return hr(n)}}};const gr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),gr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return gr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var vr=function(e){Object.assign(e.prototype,fr)};var br={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const yr=new Set(["Auxiliary","Possessive"]);var wr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(yr.has(e)||!t.hasOwnProperty(n))return 1;if(yr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:pr,api:vr,lib:br};const Pr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,kr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Ar=function(e){let t=[],n=e.split(kr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const Ir=/\S/,Gr=/^\s+/;var Tr=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Ir.test(e))return[];e=e.replace(" "," ");let n=Ar(e),r=Er(n),a=xr(r,t);if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Hr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Mr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Lr=/['’]/,Wr=/^[a-z]\.([a-z]\.)+/i,Jr=/^[-+.][0-9]/,qr=/^'[0-9]{2}/;var Kr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Hr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Jr.test(e)?"'"===n&&qr.test(e)?(n="",t):"":(n="",t)))).replace(Mr,a=>(r=a,Lr.test(a)&&/[sn]['’]$/.test(t)&&!1===Lr.test(n)?(r=r.replace(Lr,""),"'"):!0===Wr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Ur=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Rr=/([A-Z]\.)+[A-Z]?,?$/,_r=/^[A-Z]\.,?$/,Qr=/[A-Z]{2,}('s|,)?$/,Zr=/([a-z]\.)+[a-z]\.?$/;var Yr=function(e){return function(e){return!0===Rr.test(e)||!0===Zr.test(e)||!0===_r.test(e)||!0===Qr.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xr=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ur(r),r=n(r,t),r=Yr(r),e.normal=r};const ea=/[ .][A-Z]\.? *$/i,ta=/(?:\u2026|\.{2,}) *$/,na=/\p{L}/u;var ra={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Tr,isSentence:function(e,t){if(!1===na.test(e))return!1;if(!0===ea.test(e))return!1;if(!0===ta.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Fr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Vr(n),n=Or(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Kr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{Xr(e,t)}),n})}}}};var aa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let oa={},ia={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{oa[t]=!0,ia[t]="Abbreviation",void 0!==e[1]&&(ia[t]=[ia[t],e[1]])})});var sa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let la={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ua={};Object.keys(la).forEach((function(e){la[e].split("").forEach((function(t){ua[t]=e}))}));const ca=/\//,ha=/[a-z]\.[a-z]/i,da=/[0-9]/;var ma=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ca.test(n)&&!ha.test(n)&&!da.test(n)){let t=n.split(ca);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const pa=/^\p{Letter}+-\p{Letter}+$/u;var ga=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),pa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var fa=function(e){let t=0,n=0,r=e.document;for(let e=0;eva(e,ma),machine:e=>va(e,ga),normal:e=>va(e,Xr),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const Pa={safe:!0,min:3};var ka={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=ya},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},Pa,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=wa(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};p.extend(U),p.extend(jn),p.extend(qt),p.extend(Vn),p.extend(wr),p.plugin(we),p.extend(ba),p.plugin(f),p.extend(Oe),p.extend(ka),p.extend(Ne),p.extend(Ln);var Aa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ja={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Na="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ea=Na.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var xa=function(e){if(void 0!==Ea[e])return Ea[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Ia=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ta(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Da(ja[e]);Va.test(e)?Object.keys(t).forEach(t=>{if($a[t]=e,"Noun|Verb"===e){let e=Ba(t,Fa);$a[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{za[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","za[e]="Emoticon"),delete za[""],delete za.null,delete za[" "];const Sa="Adjective";var Ha={beforeTags:{Determiner:Sa,Possessive:Sa},afterTags:{Adjective:Sa},beforeWords:{seem:Sa,seemed:Sa,seems:Sa,feel:Sa,feels:Sa,felt:Sa,appear:Sa,appears:Sa,appeared:Sa,also:Sa,over:Sa,under:Sa,too:Sa,it:Sa,but:Sa,still:Sa,really:Sa,quite:Sa,well:Sa,very:Sa,deeply:Sa,profoundly:Sa,extremely:Sa,so:Sa,badly:Sa,mostly:Sa,totally:Sa,awfully:Sa,rather:Sa,nothing:Sa,something:Sa,anything:Sa,not:Sa,me:Sa},afterWords:{too:Sa,also:Sa,or:Sa}};const Ma="Gerund";var La={beforeTags:{Adverb:Ma,Preposition:Ma,Conjunction:Ma},afterTags:{Adverb:Ma,Possessive:Ma,Person:Ma,Pronoun:Ma,Determiner:Ma,Copula:Ma,Preposition:Ma,Conjunction:Ma,Comparative:Ma},beforeWords:{been:Ma,keep:Ma,continue:Ma,stop:Ma,am:Ma,be:Ma,me:Ma,began:Ma,start:Ma,starts:Ma,started:Ma,stops:Ma,stopped:Ma,help:Ma,helps:Ma,avoid:Ma,avoids:Ma,love:Ma,loves:Ma,loved:Ma,hate:Ma,hates:Ma,hated:Ma},afterWords:{you:Ma,me:Ma,her:Ma,him:Ma,them:Ma,their:Ma,it:Ma,this:Ma,there:Ma,on:Ma,about:Ma,for:Ma}};var Wa={beforeTags:Object.assign({},Ha.beforeTags,La.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ha.afterTags,La.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ha.beforeWords,La.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ha.afterWords,La.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ja="Singular";var qa={beforeTags:{Determiner:Ja,Possessive:Ja,Acronym:Ja,Noun:Ja,Adjective:Ja,PresentTense:Ja,Gerund:Ja,PastTense:Ja,Infinitive:Ja,Date:Ja},afterTags:{Value:Ja,Modal:Ja,Copula:Ja,PresentTense:Ja,PastTense:Ja,Demonym:Ja},beforeWords:{the:Ja,with:Ja,without:Ja,of:Ja,for:Ja,any:Ja,all:Ja,on:Ja,cut:Ja,cuts:Ja,save:Ja,saved:Ja,saves:Ja,make:Ja,makes:Ja,made:Ja,minus:Ja,plus:Ja,than:Ja,another:Ja,versus:Ja,neither:Ja,favorite:Ja,best:Ja,daily:Ja,weekly:Ja,linear:Ja,binary:Ja,mobile:Ja,lexical:Ja,technical:Ja,computer:Ja,scientific:Ja,formal:Ja},afterWords:{of:Ja,system:Ja,aid:Ja,method:Ja,utility:Ja,tool:Ja,reform:Ja,therapy:Ja,philosophy:Ja,room:Ja,authority:Ja,says:Ja,said:Ja,wants:Ja,wanted:Ja}};const Ka={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ua={beforeTags:Object.assign({},Ha.beforeTags,qa.beforeTags,Ka.beforeTags),afterTags:Object.assign({},Ha.afterTags,qa.afterTags),beforeWords:Object.assign({},Ha.beforeWords,qa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ha.afterWords,qa.afterWords)};const Ra={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},_a={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Qa={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Za={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ya={beforeTags:Object.assign({},Ha.beforeTags,Ra),afterTags:Object.assign({},Ha.afterTags,_a),beforeWords:Object.assign({},Ha.beforeWords,Qa),afterWords:Object.assign({},Ha.afterWords,Za)};const Xa="Infinitive";var eo={beforeTags:{Modal:Xa,Adverb:Xa,Negative:Xa,Plural:Xa},afterTags:{Determiner:Xa,Adverb:Xa,Possessive:Xa,Preposition:Xa},beforeWords:{i:Xa,we:Xa,you:Xa,they:Xa,to:Xa,please:Xa,will:Xa,have:Xa,had:Xa,would:Xa,could:Xa,should:Xa,do:Xa,did:Xa,does:Xa,can:Xa,must:Xa,us:Xa,me:Xa,he:Xa,she:Xa,it:Xa,being:Xa},afterWords:{the:Xa,me:Xa,you:Xa,him:Xa,her:Xa,them:Xa,it:Xa,a:Xa,an:Xa,up:Xa,down:Xa,by:Xa,out:Xa,off:Xa,under:Xa,when:Xa,all:Xa,to:Xa,because:Xa,although:Xa,before:Xa,how:Xa,otherwise:Xa,together:Xa,though:Xa,yet:Xa}};const to={afterTags:{Noun:"Adjective",Conjunction:void 0}};var no={beforeTags:Object.assign({},Ha.beforeTags,eo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ha.afterTags,eo.afterTags,to.afterTags),beforeWords:Object.assign({},Ha.beforeWords,eo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ha.afterWords,eo.afterWords,{to:void 0})};const ro={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ao={},oo={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},io={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var so={beforeTags:Object.assign({},La.beforeTags,qa.beforeTags,ro),afterTags:Object.assign({},La.afterTags,qa.afterTags,ao),beforeWords:Object.assign({},La.beforeWords,qa.beforeWords,oo),afterWords:Object.assign({},La.afterWords,qa.afterWords,io)};var lo={beforeTags:Object.assign({},eo.beforeTags,qa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},eo.afterTags,qa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},eo.beforeWords,qa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},eo.afterWords,qa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const uo="Person";var co={beforeTags:{Honorific:uo,Person:uo,Preposition:uo},afterTags:{Person:uo,ProperNoun:uo,Verb:uo},ownTags:{ProperNoun:uo},beforeWords:{hi:uo,hey:uo,yo:uo,dear:uo,hello:uo},afterWords:{said:uo,says:uo,told:uo,tells:uo,feels:uo,felt:uo,seems:uo,thinks:uo,thought:uo,spends:uo,spendt:uo,plays:uo,played:uo,sing:uo,sang:uo,learn:uo,learned:uo,wants:uo,wanted:uo}};const ho="Month",mo={beforeTags:{Date:ho,Value:ho},afterTags:{Date:ho,Value:ho},beforeWords:{by:ho,in:ho,on:ho,during:ho,after:ho,before:ho,between:ho,until:ho,til:ho,sometime:ho,of:ho,this:ho,next:ho,last:ho,previous:ho,following:ho},afterWords:{sometime:ho,in:ho,of:ho,until:ho,the:ho}};var po={beforeTags:Object.assign({},co.beforeTags,mo.beforeTags),afterTags:Object.assign({},co.afterTags,mo.afterTags),beforeWords:Object.assign({},co.beforeWords,mo.beforeWords),afterWords:Object.assign({},co.afterWords,mo.afterWords)};const go={Place:"Place"},fo={Place:"Place",Abbreviation:"Place"},vo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let yo="Unit";const wo={"Adj|Gerund":Wa,"Adj|Noun":Ua,"Adj|Past":Ya,"Adj|Present":no,"Noun|Verb":lo,"Noun|Gerund":so,"Person|Noun":{beforeTags:Object.assign({},qa.beforeTags,co.beforeTags),afterTags:Object.assign({},qa.afterTags,co.afterTags),beforeWords:Object.assign({},qa.beforeWords,co.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},qa.afterWords,co.afterWords)},"Person|Date":po,"Person|Verb":{beforeTags:Object.assign({},co.beforeTags,eo.beforeTags),afterTags:Object.assign({},co.afterTags,eo.afterTags),beforeWords:Object.assign({},co.beforeWords,eo.beforeWords),afterWords:Object.assign({},co.afterWords,eo.afterWords)},"Person|Place":{beforeTags:Object.assign({},go,co.beforeTags),afterTags:Object.assign({},fo,co.afterTags),beforeWords:Object.assign({},vo,co.beforeWords),afterWords:Object.assign({},bo,co.afterWords)},"Unit|Noun":{beforeTags:{Value:yo},afterTags:{},beforeWords:{per:yo,every:yo,each:yo,square:yo,cubic:yo,sq:yo,metric:yo},afterWords:{per:yo,squared:yo,cubed:yo,long:yo}}},Po=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};wo["Plural|Verb"]={beforeWords:Po(wo["Noun|Verb"].beforeWords,{}),afterWords:Po(wo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Po(wo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Po(wo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ko=wo;const Ao="Adjective",jo="Infinitive",No="PresentTense",Eo="Singular",xo="PastTense",Io="Adverb",Go="Plural",To="Verb",Do="LastName",Co="Participle";var Oo=[null,null,{ea:Eo,ia:"Noun",ic:Ao,ly:Io,"'n":To,"'t":To},{oed:xo,ued:xo,xed:xo," so":Io,"'ll":"Modal","'re":"Copula",azy:Ao,eer:"Noun",end:To,ped:xo,ffy:Ao,ify:jo,ing:"Gerund",ize:jo,ibe:jo,lar:Ao,mum:Ao,nes:No,nny:Ao,ous:Ao,que:Ao,rol:Eo,sis:Eo,ogy:Eo,oid:Eo,ian:Eo,zes:No,eld:xo,ken:Co,ven:Co,ten:Co,ect:jo,ict:jo,ign:jo,ful:Ao,bal:Ao},{amed:xo,aped:xo,ched:xo,lked:xo,rked:xo,reed:xo,nded:xo,mned:Ao,cted:xo,dged:xo,ield:Eo,akis:Do,cede:jo,chuk:Do,czyk:Do,ects:No,ends:To,enko:Do,ette:Eo,wner:Eo,fies:No,fore:Io,gate:jo,gone:Ao,ices:Go,ints:Go,ruct:jo,ines:Go,ions:Go,less:Ao,llen:Ao,made:Ao,nsen:Do,oses:No,ould:"Modal",some:Ao,sson:Do,tion:Eo,tage:"Noun",ique:Eo,tive:Ao,tors:"Noun",vice:Eo,lier:Eo,fier:Eo,wned:xo,gent:Eo,tist:Eo,pist:Eo,rist:Eo,mist:Eo,yist:Eo,vist:Eo,lite:Eo,site:Eo,rite:Eo,mite:Eo,bite:Eo,mate:Eo,date:Eo,ndal:Eo,vent:Eo,uist:Eo,gist:Eo,note:Eo,cide:Eo,wide:Ao,vide:jo,ract:jo,duce:jo,pose:jo,eive:jo,lyze:jo,lyse:jo,iant:Ao,nary:Ao},{elist:Eo,holic:Eo,phite:Eo,tized:xo,urned:xo,eased:xo,ances:Go,bound:Ao,ettes:Go,fully:Io,ishes:No,ities:Go,marek:Do,nssen:Do,ology:"Noun",osome:Eo,tment:Eo,ports:Go,rough:Ao,tches:No,tieth:"Ordinal",tures:Go,wards:Io,where:Io,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Eo,scent:Eo,onist:Eo,anist:Eo,alist:Eo,olist:Eo,icist:Eo,ounce:jo,iable:Ao,borne:Ao,gnant:Ao,inant:Ao,igent:Ao,atory:Ao,rient:Eo,dient:Eo},{auskas:Do,parent:Eo,cedent:Eo,ionary:Eo,cklist:Eo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Do,borough:"Place",sdottir:Do}];const Bo="Adjective";var Vo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Bo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Bo,tele:"Noun","pro-":Bo,"mis-":"Verb","dis-":"Verb","pre-":Bo},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Bo,radio:"Noun",tetra:"Noun","omni-":Bo,"post-":Bo},{pseudo:Bo,"extra-":Bo,"hyper-":Bo,"inter-":Bo,"intra-":Bo,"deca-":Bo},{electro:"Noun"}];const zo="Adjective",$o="Infinitive",Fo="PresentTense",So="Singular",Ho="PastTense",Mo="Expression",Lo="LastName";var Wo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Lo],[/.[^aeiou]ica$/,So,"harmonica"],[/^([hyj]a+)+$/,Mo,"haha"]],c:[[/.[^aeiou]ic$/,zo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ho,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ho,"rammed"],[/.[aeiou][sg]hed$/,Ho,"gushed"],[/.[aeiou]red$/,Ho,"hired"],[/.[aeiou]r?ried$/,Ho,"hurried"],[/[^aeiou]ard$/,So,"steward"],[/[aeiou][^aeiou]id$/,zo,""],[/.[vrl]id$/,zo,"livid"],[/..led$/,Ho,"hurled"],[/.[iao]sed$/,Ho,""],[/[aeiou]n?[cs]ed$/,Ho,""],[/[aeiou][rl]?[mnf]ed$/,Ho,""],[/[aeiou][ns]?c?ked$/,Ho,"bunked"],[/[aeiou]gned$/,Ho],[/[aeiou][nl]?ged$/,Ho],[/.[tdbwxyz]ed$/,Ho],[/[^aeiou][aeiou][tvx]ed$/,Ho],[/.[cdflmnprstv]ied$/,Ho,"emptied"]],e:[[/.[lnr]ize$/,$o,"antagonize"],[/.[^aeiou]ise$/,$o,"antagonise"],[/.[aeiou]te$/,$o,"bite"],[/.[^aeiou][ai]ble$/,zo,"fixable"],[/.[^aeiou]eable$/,zo,"maleable"],[/.[ts]ive$/,zo,"festive"],[/[a-z]-like$/,zo,"woman-like"]],h:[[/.[^aeiouf]ish$/,zo,"cornish"],[/.v[iy]ch$/,Lo,"..ovich"],[/^ug?h+$/,Mo,"ughh"],[/^uh[ -]?oh$/,Mo,"uhoh"],[/[a-z]-ish$/,zo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Lo,"polish-male"]],k:[[/^(k){2}$/,Mo,"kkkk"]],l:[[/.[gl]ial$/,zo,"familial"],[/.[^aeiou]ful$/,zo,"fitful"],[/.[nrtumcd]al$/,zo,"natal"],[/.[^aeiou][ei]al$/,zo,"familial"]],m:[[/.[^aeiou]ium$/,So,"magnesium"],[/[^aeiou]ism$/,So,"schism"],[/^[hu]m+$/,Mo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,zo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Mo,"noooo"],[/^(yo)+$/,Mo,"yoo"],[/^wo{2,}[pt]?$/,Mo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,So],[/[^i]fer$/,$o],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,zo],[/[aeiou].*ist$/,zo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Fo],[/.[rln]ates$/,Fo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,So],[/.[aeiou]sks$/,Fo],[/.[aeiou]kes$/,Fo],[/[aeiou][^aeiou]is$/,So],[/[a-z]'s$/,"Noun"],[/^yes+$/,Mo]],v:[[/.[^aeiou][ai][kln]ov$/,Lo]],y:[[/.[cts]hy$/,zo],[/.[st]ty$/,zo],[/.[tnl]ary$/,zo],[/.[oe]ry$/,So],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,zo],[/...lly$/,"Adverb"],[/.[gk]y$/,zo],[/[bszmp]{2}y$/,zo],[/.[ai]my$/,zo],[/[ea]{2}zy$/,zo],[/.[^aeiou]ity$/,So]]};const Jo="Verb",qo="Noun";var Ko={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Jo],["Pronoun",Jo],["Value",qo],["Ordinal",qo],["Modal",Jo],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Jo],["first",qo],["it",Jo],["there",Jo],["not",Jo],["because",qo],["if",qo],["but",qo],["who",Jo],["this",qo],["his",qo],["when",qo],["you",Jo],["very","Adjective"],["old",qo],["never",Jo],["before",qo],["a","Singular"],["the",qo],["been",Jo]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Jo],["me",Jo],["man","Adjective"],["only",Jo],["him",Jo],["it",Jo],["were",qo],["took",qo],["himself",Jo],["went",qo],["who",qo],["jr","Person"]]},Uo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ro={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},_o={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Qo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Zo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Yo=/^.([0-9]+)/;var Xo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Yo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Yo,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ti=/^([0-9]+)/,ni=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ti);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ti,"")]}(n[0],n[1])})};var ri=function(e={}){return(e=Object.assign({},e)).rules=ni(e.rules),e.rules=ei(e.rules),e.rev&&(e.rev=ni(e.rev),e.rev=ei(e.rev)),e.exceptions=ni(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ai=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const oi=ri({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ii=ri(Qo),si=ri(Ro),li=ri(_o),ui=ai(oi),ci=ai(ii),hi=ai(si),di=ai(li),mi=ri(Uo),pi=ri(Zo);var gi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:mi,toSuperlative:pi,fromComparative:ai(mi),fromSuperlative:ai(pi)},fi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),vi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var bi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi;var Pi=function(e){let t=e.substring(e.length-3);if(!0===wi.hasOwnProperty(t))return wi[t];let n=e.substring(e.length-2);return!0===wi.hasOwnProperty(n)?wi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ki={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ai=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Pi(e)),ki.hasOwnProperty(e))c=ki[e];else if("Participle"===n)c=Xo(l,i);else if("PastTense"===n)c=Xo(l,r);else if("PresentTense"===n)c=Xo(l,a);else{if("Gerund"!==n)return e;c=Xo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ji=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Xo(i,n),PresentTense:Xo(i,r),Gerund:Xo(i,a),FutureTense:"will "+e},u=Xo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var Ni=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ei="ically",xi=new Set(["analyt"+Ei,"chem"+Ei,"class"+Ei,"clin"+Ei,"crit"+Ei,"ecolog"+Ei,"electr"+Ei,"empir"+Ei,"frant"+Ei,"grammat"+Ei,"ident"+Ei,"ideolog"+Ei,"log"+Ei,"mag"+Ei,"mathemat"+Ei,"mechan"+Ei,"med"+Ei,"method"+Ei,"method"+Ei,"mus"+Ei,"phys"+Ei,"phys"+Ei,"polit"+Ei,"pract"+Ei,"rad"+Ei,"satir"+Ei,"statist"+Ei,"techn"+Ei,"technolog"+Ei,"theoret"+Ei,"typ"+Ei,"vert"+Ei,"whims"+Ei]),Ii=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Gi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ti={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Di=function(e){return e.endsWith("ly")?xi.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:Ni(e,Ii)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Oi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Oi.hasOwnProperty(e))return Oi[e];let t=Ni(e,Ci);return t||e+"ly"};const Vi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],zi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},$i=new Set(["terrible","annoying"]);const Fi=function(e,t){const n=t.two.models.toSuperlative;return Xo(e,n)},Si=function(e,t){const n=t.two.models.toComparative;return Xo(e,n)};var Hi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Mi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Hi.hasOwnProperty(i)&&Hi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Ba,nounToSingular:bi,verbToInfinitive:Ai,getTense:Pi,verbConjugate:ji,adjToSuperlative:Fi,adjToComparative:Si,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Xo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Xo(e,n)},advToAdjective:Di,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if($i.has(e))return null;let t=Ni(e,Vi);return t||e+"ness"}}}};var Li=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Wi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ji=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Wi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Wi(r,"Infinitive","Verb"),Object.assign(s,l),l=Wi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Wi(o,"Adjective","Superlative"),Object.assign(s,l),l=Wi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let qi={two:{models:gi}};const Ki={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ui=function(e,t){const n={model:t,methods:Mi};let{lex:r,_multi:a}=Mi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Ri=function(e,t,n){let r=ji(e,qi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},_i=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=Fi(e,n);t[r]=t[r]||"Superlative";let a=Si(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ai(a,qi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ai(a,qi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Qi={one:{_multiCache:{},lexicon:za},two:{irregularPlurals:Aa,models:gi,suffixPatterns:Oo,prefixPatterns:Vo,endsWith:Wo,neighbours:Ko,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:$a,clues:ko,uncountable:{},orgWords:fi}};Qi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Ui(e.one.lexicon,e)).one.lexicon,e),e=_i(e.two.switches,e),e=Ji(e),e=Li(e)}(Qi);var Zi=Qi;const Yi=/^(under|over|mis|re|un|dis|semi)-?/;var Xi=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(Yi.test(a.normal)){let e=a.normal.replace(Yi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var es=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const ts={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},ns=new Set(["formulas","koalas","israelis","menus"]),rs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var as=function(e){if(!e||e.length<=3)return!1;if(ns.has(e))return!0;let t=e[e.length-1];return ts.hasOwnProperty(t)?ts[t].find(t=>e.endsWith(t)):"s"===t&&!rs.find(t=>e.endsWith(t))};const os=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var is=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?es(e,"Plural","3-plural-guess"):es(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Pi(e.normal);t&&es(e,t,"3-verb-tense-guess")}}(r)};const ss=/^\p{Lu}[\p{Ll}'’]/u,ls=/[0-9]/,us=["Date","Month","WeekDay","Unit"],cs=/^[IVXLCDM]{2,}$/,hs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ds={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ms=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ss.test(o)&&!1===ls.test(o)?us.find(e=>r.tags.has(e))?null:(is(e,t,n),r.tags.has("Noun")||r.tags.clear(),es(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&cs.test(o)&&hs.test(o)&&!ds[r.normal]?(es(r,"RomanNumeral","2-xvii"),!0):null};const ps=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var gs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ps(r.normal,n.two.suffixPatterns);if(null!==e)return es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,vs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return es(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ws=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ps=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ws.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ks=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},As=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var js=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ps(a)||Ps(o))return es(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(ks(a)||ks(o))return es(n,"Year","2-tagYear-close");if(As(e[t-2])||As(e[t+2]))return es(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return es(n,"Year","2-tagYear-noun")}}}return null};const Ns=/^[A-Z]('s|,)?$/,Es=/^[A-Z-]+$/,xs=/([A-Z]\.)+[A-Z]?,?$/,Is=/[A-Z]{2,}('s|,)?$/,Gs=/([a-z]\.)+[a-z]\.?$/,Ts={I:!0,A:!0};var Ds=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Es.test(n)||n.length>5||Ts.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xs.test(n)&&!0!==Gs.test(n)&&!0!==Ns.test(n)&&!0!==Is.test(n))}(r,n)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ts.hasOwnProperty(r.text)&&Ns.test(r.text)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(es(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Es.test(r.text)&&r.text.length<=6?(es(r,"Acronym","3-titlecase-acronym"),!0):null};const Cs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Os=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Bs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Cs(e[t-1],a),l=l||Cs(e[t+1],o),l=l||Os(e[t-1],r),l=l||Os(e[t+1],i),l)return es(s,l,"3-[neighbour]"),is(e,t,n),e[t].confidence=.2,!0}return null};const Vs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var zs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Vs(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Vs(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var $s=function(e,t,n){0===e[t].tags.size&&(es(e[t],"Noun","3-[fallback]"),is(e,t,n),e[t].confidence=.1)};const Fs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ss=(e,t,n)=>0!==t||e[1]?null:n;var Hs={"Adj|Gerund":(e,t)=>Fs(e,t),"Adj|Noun":(e,t)=>Fs(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Fs(e,t),"Adj|Present":(e,t)=>Fs(e,t),"Noun|Gerund":(e,t)=>Fs(e,t),"Noun|Verb":(e,t)=>Fs(e,t)||Ss(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Fs(e,t)||Ss(e,t,"PresentTense"),"Person|Noun":(e,t)=>Fs(e,t),"Person|Verb":(e,t)=>0!==t&&Fs(e,t)};const Ms="undefined"!=typeof process&&process.env?process.env:self.env||{},Ls=/^(under|over|mis|re|un|dis|semi)-?/,Ws=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Ms.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Js=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Ms.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};const qs={tagSwitch:Xi,checkSuffix:gs,checkRegex:bs,checkCase:ms,checkPrefix:ys,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(es(o,"Verb","3-[prefix]"),es(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(es(o,"Adjective","3-[prefix]"),es(o,"Prefix","3-[prefix]")))},checkYear:js},Ks={checkAcronym:Ds,neighbours:Bs,orgWords:zs,nounFallback:$s,switches:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ls.test(l)&&!o[l]&&(l=l.replace(Ls,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Ws(e[t+1],n.afterWords);return o=o||Ws(e[t-1],n.beforeWords),o=o||Js(e[t-1],n.beforeTags,a),o=o||Js(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Hs[o]&&(u=Hs[o](e,t)||u),u?(a([s],u,n,null,`3-[variable] (${o})`),is(e,t,r)):Ms.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Us=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Qs={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Zs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ll=/'/;var ul=function(e,t){let n=e[t].normal.split(ll)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var dl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ml={that:!0,there:!0,let:!0,here:!0,everywhere:!0},pl={in:!0,by:!0,for:!0};var gl=(e,t)=>{let n=e[t];if(ml.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===pl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const fl=/'/,vl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},bl={d:(e,t)=>hl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>gl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ul(e,t)},yl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var wl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===fl.test(r[o].normal)&&([,i]=r[o].normal.split(fl));let s=null;bl.hasOwnProperty(i)&&(s=bl[i](r,o,t)),s&&(s=yl(s,e),sl(n,[a,o],s),vl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=il.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ol},hooks:["contractionTwo"]};const Pl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const kl=["i","we","they"];let Al=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Pl+" #Person",tag:"Person",reason:"randy-smith"},{match:Pl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Pl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:kl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:kl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:kl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let jl=null;var Nl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;jl=jl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(jl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Al}},hooks:["postTagger"]};var El=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))};var xl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=El(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};var Il=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var Gl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Il(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var Tl={api:function(e){e.prototype.swap=Gl}};p.plugin(nl),p.plugin(wl),p.plugin(Nl),p.plugin(xl),p.plugin(Tl);var Dl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Cl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ol={this:"Noun",then:"Pivot"};var Bl=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Ll={compute:{chunks:function(e){const{document:t,world:n}=e;Bl(t),Vl(t),Fl(e,t,n),Hl(t),Ml(t)}},api:function(e){e.prototype.chunks=Cl,e.prototype.clauses=Dl},hooks:["chunks"]};const Wl=/'s$/;var Jl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Wl,""),e.normal=e.normal.replace(Wl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ql=/\(/,Kl=/\)/,Ul=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ql,"");let t=e[e.length-1];t.post=t.post.replace(Kl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const _l={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ql=RegExp("("+Object.keys(_l).join("|")+")"),Zl=RegExp("("+Object.values(_l).join("|")+")"),Yl=function(e,t){const n=e[t].pre.match(Ql)[0]||"";if(!n||!_l[n])return null;const r=_l[n];for(;t{e[0].pre=e[0].pre.replace(Ql,"");let t=e[e.length-1];t.post=t.post.replace(Zl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const eu=/\./g;var tu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(eu,""),e.normal=e.normal.replace(eu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var nu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const ru=(e,t)=>"number"==typeof t?e.eq(t):e,au=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var ou=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=au(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return ru(this,e).map(e=>{let n=au(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=ru(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=ru(t,e),new Adjectives(t.document,t.pointer)}};const iu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},su=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let lu=[["emojis","emoji"],["atmentions","atMentions"]];var uu=function(e){su.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=iu,lu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},cu={api:function(e){uu(e),Jl(e),Rl(e),Xl(e),ou(e),nu(e),tu(e)}};const hu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var du={case:e=>{hu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;hu(e,e=>e.text=n(e.text,t))},whitespace:e=>{hu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{hu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const mu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),pu="unicode|punctuation|whitespace|acronyms",gu="|case|contractions|parentheses|quotations|emoji|honorifics",fu={light:mu(pu),medium:mu(pu+gu),heavy:mu(pu+gu+"|possessives|adverbs|nouns|verbs")};var vu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=fu[e]),Object.keys(e).forEach(t=>{du.hasOwnProperty(t)&&du[t](this,e[t])}),this}}};var bu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const yu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var wu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var ku=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Pu(e,t),isSubordinate:wu(e),root:t}};const Au=e=>e.text(),ju=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Nu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Eu=function(e){let t=ku(e);return{root:Au(t.root),number:Nu(t.number),determiner:Au(t.determiner),adjectives:ju(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const xu={tags:!0};var Iu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,xu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",xu),e};const Gu={tags:!0};var Tu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Gu).tag("Singular","toPlural"),e};const Du=(e,t)=>"number"==typeof t?e.eq(t):e;var Cu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Du(this,e).map(ku)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Eu(t)),n},[])}isPlural(e){let t=this.filter(e=>ku(e).isPlural);return Du(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=ku(e).adjectives;n.found&&(t=t.concat(n))}),Du(t,e)}toPlural(e){return Du(this,e).map(e=>Iu(e,ku(e)))}toSingular(e){return Du(this,e).map(e=>{let t=ku(e);return Tu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=bu(this);return t=Du(t,e),new Nouns(this.document,t.pointer)}}};var Ou=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Bu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Vu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Vu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Vu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var $u=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Su=/^([0-9,. ]+)\/([0-9,. ]+)$/,Hu={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Mu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Lu=function(e){if(!0===Hu.hasOwnProperty(e))return Hu[e];if("a"===e||"an"===e)return 1;const t=Bu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Ju(n),r=Ju(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Ju(n);let a=r.text("reduced");return Wu.test(a)&&(a=a.replace(Wu,""),r=r.replaceWith(a)),r=qu.hasOwnProperty(a)?qu[a]:Ju(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Ju(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var Uu=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ru=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],_u=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Qu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Zu=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ru[n][1]&&(e-=Ru[n][1],t.push(Ru[n][0]));return _u[e]&&t.push(_u[e]),t};var Yu=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Uu(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Qu.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Zu(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Uu(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var Xu=function(e){if(!e.numerator||!e.denominator)return"";return`${Yu({num:e.numerator})} out of ${Yu({num:e.denominator})}`};const ec={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var tc=e=>{let t=Yu(e).split(" "),n=t[t.length-1];return ec.hasOwnProperty(n)?t[t.length-1]=ec[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var nc=function(e){if(!e.numerator||!e.denominator)return"";let t=Yu({num:e.numerator}),n=tc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const rc=(e,t)=>"number"==typeof t?e.eq(t):e;var ac=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return rc(this,e).map(Ku)}get(e){return rc(this,e).map(Ku)}json(e){return rc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ku(t);return n.fraction=r,n},[])}toDecimal(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return rc(this,e).forEach(e=>{let t=Ku(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=nc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return rc(this,e).forEach(e=>{let t=Ku(e),n=Xu(t);e.replaceWith(n)}),this}toPercentage(e){return rc(this,e).forEach(e=>{let{decimal:t}=Ku(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Ou(this);return t=rc(t,e),new Fractions(this.document,t.pointer)}};const oc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var ic=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+oc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+oc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+oc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+oc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${oc})`),r=e.has("("+oc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+oc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+oc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var sc=function(e){if("string"==typeof e)return{num:Lu(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=Ku(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Lu(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var lc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Uu(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const uc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},cc={"%":"percent","°":"degrees"};var hc=function(e){let t={suffix:"",prefix:e.prefix};return uc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+uc[e.prefix],t.prefix=""),cc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+cc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var dc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=hc(e);return t+tc(e)+n}if("Ordinal"===t)return e.prefix+lc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=hc(e);return t+Yu(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const mc=(e,t)=>"number"==typeof t?e.eq(t):e;var pc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return mc(this,e).map(sc)}get(e){return mc(this,e).map(sc).map(e=>e.num)}json(e){return mc(this,e).map(t=>{let n=t.toView().json(e)[0],r=sc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=sc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=dc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=sc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=dc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=sc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=dc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>sc(t).num===e)}greaterThan(e){return this.filter(t=>sc(t).num>e)}lessThan(e){return this.filter(t=>sc(t).num{let r=sc(n).num;return r>e&&r{let n=sc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=sc(e).num);let t=this.map(t=>{let n=sc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=dc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=ic(this);return t=mc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=mc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=ic(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=mc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var gc={api:function(e){ac(e),pc(e)}};const fc={people:!0,emails:!0,phoneNumbers:!0,places:!0},vc=function(e={}){return!1!==(e=Object.assign({},fc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var bc={api:function(e){e.prototype.redact=vc}};var yc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var wc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Pc=function(e){let t=e.clauses(),n=wc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var kc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Ac=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var jc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var Nc=function(e){return e.verbs().toInfinitive(),e};const Ec=(e,t)=>"number"==typeof t?e.eq(t):e;var xc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Pc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ec(this,e).map(e=>(Pc(e),kc(e)))}toPresentTense(e){return Ec(this,e).map(e=>(Pc(e),Ac(e)))}toFutureTense(e){return Ec(this,e).map(e=>(Pc(e),e=jc(e)))}toInfinitive(e){return Ec(this,e).map(e=>(Pc(e),Nc(e)))}toNegative(e){return Ec(this,e).map(e=>(Pc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ec(this,e).map(e=>(Pc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ec(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ec(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ec(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=yc(this);return Ec(t,e)}};Object.assign(e.prototype,t)}};var Ic=function(e){return e.match("#Honorific+? #Person+")};var Gc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Tc="male",Dc="female",Cc={mr:Tc,mrs:Dc,miss:Dc,madam:Dc,king:Tc,queen:Dc,duke:Tc,duchess:Dc,baron:Tc,baroness:Dc,count:Tc,countess:Dc,prince:Tc,princess:Dc,sire:Tc,dame:Dc,lady:Dc,ayatullah:Tc,congressman:Tc,congresswoman:Dc,"first lady":Dc,mx:null};var Oc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Dc;if(n.has("#MaleName"))return Tc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Cc.hasOwnProperty(e))return Cc[e];if(/^her /.test(e))return Dc;if(/^his /.test(e))return Tc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Tc;if(n&&!t)return Dc}return null};const Bc=(e,t)=>"number"==typeof t?e.eq(t):e;var Vc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Bc(this,e).map(Gc)}json(e){return Bc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Gc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Oc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Ic(this);return t=Bc(t,e),new People(this.document,t.pointer)}};var zc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var $c=function(e){e.prototype.places=function(t){let n=zc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Fc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Sc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Hc=function(e){e.prototype.topics=Sc};var Mc={api:function(e){Vc(e),$c(e),Fc(e),Hc(e)}};var Lc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Wc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Jc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const qc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Kc=function(e){return e.match("#Negative")},Uc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Rc=function(e){let t=e.clone();t.contractions().expand();const n=Wc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Jc(t,n),auxiliary:qc(t,n),negative:Kc(t),phrasal:Uc(n)}};const _c={tense:"PresentTense"},Qc={conditional:!0},Zc={tense:"FutureTense"},Yc={progressive:!0},Xc={tense:"PastTense"},eh={complete:!0,progressive:!1},th={passive:!0},nh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},rh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[_c]],["^wanted to #Infinitive$",[Xc]],["^will want to #Infinitive$",[Zc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Xc]],["^#PresentTense #Gerund$",[_c]],["^#Infinitive #Gerund$",[_c]],["^will #Infinitive #Gerund$",[Zc]],["^have #PastTense #Gerund$",[Xc]],["^will have #PastTense #Gerund$",[Xc]]],"simple-present":[["^#PresentTense$",[_c]],["^#Infinitive$",[_c]]],"simple-past":[["^#PastTense$",[Xc]]],"simple-future":[["^will #Adverb? #Infinitive",[Zc]]],"present-progressive":[["^(is|are|am) #Gerund$",[_c,Yc]]],"past-progressive":[["^(was|were) #Gerund$",[Xc,Yc]]],"future-progressive":[["^will be #Gerund$",[Zc,Yc]]],"present-perfect":[["^(has|have) #PastTense$",[Xc,eh]]],"past-perfect":[["^had #PastTense$",[Xc,eh]],["^had #PastTense to #Infinitive",[Xc,eh]]],"future-perfect":[["^will have #PastTense$",[Zc,eh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Xc,Yc]]],"past-perfect-progressive":[["^had been #Gerund$",[Xc,Yc]]],"future-perfect-progressive":[["^will have been #Gerund$",[Zc,Yc]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Xc,th]],["^(was|were) being (#PastTense|#Participle)",[Xc,th]],["^(had|have) been (#PastTense|#Participle)",[Xc,th]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[_c,th]],["^(is|are|am) being (#PastTense|#Participle)",[_c,th]],["^has been (#PastTense|#Participle)",[_c,th]]],"passive-future":[["will have been (#PastTense|#Participle)",[Zc,th,Qc]],["will be being? (#PastTense|#Participle)",[Zc,th,Qc]]],"present-conditional":[["would be #PastTense",[_c,Qc]]],"past-conditional":[["would have been #PastTense",[Xc,Qc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Zc]]],"auxiliary-past":[["^did #Infinitive$",[Xc,{plural:!1}]],["^used to #Infinitive$",[Xc,eh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[_c,eh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Xc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let ah=[];Object.keys(rh).map(e=>{rh[e].forEach(t=>{ah.push({name:e,match:t[0],data:nh(t[1])})})});var oh=ah;var ih=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),sh(r)&&(n.remove(r),r=n.last()),sh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:lh(t,e)}};const ch=e=>e,hh=(e,t)=>{let n=uh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},dh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=uh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},mh=function(e,t){let n=uh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},ph=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,ph(e)),r&&e.replace(t.root,r),e},fh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),vh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},bh=function(e){return e&&e.isView?e.text("normal"):""},yh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,ph(e))};var wh=function(e){let t=Rc(e);e=e.clone().toView();const n=ih(e,t);return{root:t.root.text(),preAdverbs:vh(t.adverbs.pre),postAdverbs:vh(t.adverbs.post),auxiliary:bh(t.auxiliary),negative:t.negative.found,prefix:bh(t.prefix),infinitive:yh(t.root),grammar:n}};const Ph={tags:!0};var kh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,ph(r)),i&&e.replace(r,i,Ph).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=mh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ah={tags:!0},jh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,ph(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=uh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ah),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=jh.simple(e,t),e=jh.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ah),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,ph(a)),n(o,e.model).Participle}},Nh={infinitive:jh.simple,"simple-present":jh.simple,"simple-past":ch,"simple-future":jh.both,"present-progressive":e=>(e.replace("are","were",Ah),e.replace("(is|are|am)","was",Ah),e),"past-progressive":ch,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":jh.hasHad,"past-perfect":ch,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=fh(e)),e.remove("have"),e),"present-perfect-progressive":jh.hasHad,"past-perfect-progressive":ch,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ah),e),"passive-past":e=>(e.replace("have","had",Ah),e),"passive-present":e=>(e.replace("(is|are)","was",Ah),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ah),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":ch,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ah),e),"auxiliary-past":ch,"auxiliary-present":e=>(e.replace("(do|does)","did",Ah),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ah):(jh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":ch,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ah),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),jh.simple(e,t),fh(e),e)};var Eh=function(e,t,n){return Nh.hasOwnProperty(n)?((e=Nh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const xh={tags:!0},Ih=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,ph(a)),!1===hh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=dh(e)),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("PresentTense"),e},Gh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,ph(a)),!1===hh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,xh)).not("#Particle").tag("Gerund"),e},Th={infinitive:Ih,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Ih(e,t);{let t=uh(e).subject;if(hh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,xh)}return e},"simple-past":Ih,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=dh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ih(e,t),e=e.remove("will");return e},"present-progressive":ch,"past-progressive":(e,t)=>{let n=dh(e);return e.replace("(were|was)",n,xh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ih(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=uh(e).subject;return hh(e)||n.has("i")?((e=gh(e,t)).remove("had"),e):(e.replace("had","has",xh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":ch,"past-perfect-progressive":e=>e.replace("had","has",xh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=dh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,xh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":ch,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":ch,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Gh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=mh(e);return e.replace(t.auxiliary,n),e}return Gh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":ch,"modal-infinitive":ch,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,ph(r)),a&&(e=e.replace(t.root,a,xh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ih(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return hh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,xh),e.remove("will"),e}};var Dh=function(e,t,n){return Th.hasOwnProperty(n)?((e=Th[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Ch={tags:!0},Oh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,ph(r)),o&&(e=e.replace(r,o,Ch)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Bh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,ph(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Ch),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Vh={infinitive:Oh,"simple-present":Oh,"simple-past":Oh,"simple-future":ch,"present-progressive":Bh,"past-progressive":Bh,"future-progressive":ch,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":ch,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":ch,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":ch,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":ch,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":ch,"modal-past":ch,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Oh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var zh=function(e,t,n){return e.has("will")||e.has("going to")?e:Vh.hasOwnProperty(n)?((e=Vh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const $h={tags:!0};var Fh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,ph(a));let s=r(i,e.model).Gerund;return s&&(s=`${dh(e)} ${s}`,e.replace(a,s,$h)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Sh={tags:!0},Hh=function(e,t){let n=mh(e);return e.prepend(n+" not"),e},Mh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Lh=e=>e.has("(is|was|am|are|will|were|be)"),Wh={"simple-present":(e,t)=>!0===Lh(e)?Mh(e):(e=gh(e,t),e=Hh(e)),"simple-past":(e,t)=>!0===Lh(e)?Mh(e):((e=gh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Lh(e)?Mh(e):Hh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Sh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Hh(e)).replace("wants","want",Sh)};var Jh=function(e,t,n){if(e.has("#Negative"))return e;if(Wh.hasOwnProperty(n))return e=Wh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Lh(e)?Mh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const qh=(e,t)=>"number"==typeof t?e.eq(t):e;var Kh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return qh(this,e).map(Rc)}json(e,t){return qh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=wh(t),n},[])}subjects(e){return qh(this,e).map(e=>(Rc(e),uh(e).subject))}adverbs(e){return qh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return qh(this,e).filter(e=>!0!==uh(e).plural)}isPlural(e){return qh(this,e).filter(e=>!0===uh(e).plural)}isImperative(e){return qh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return kh(e,t,n.form)})}toPresentTense(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return Dh(e,t,n.form)})}toPastTense(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return Eh(e,t,n.form)})}toFutureTense(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return zh(e,t,n.form)})}toGerund(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return Fh(e,t,n.form)})}conjugate(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:kh(e.clone(),t,n.form).text("normal"),PastTense:Eh(e.clone(),t,n.form).text("normal"),PresentTense:Dh(e.clone(),t,n.form).text("normal"),FutureTense:zh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return qh(this,e).map(e=>{let t=Rc(e),n=ih(e,t);return Jh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Lc(this);return t=qh(t,e),new Verbs(this.document,t.pointer)}}};p.plugin(Ll),p.plugin(cu),p.plugin(vu),p.plugin(Cu),p.plugin(gc),p.plugin(bc),p.plugin(xc),p.plugin(Mc),p.plugin(Kh);export{p as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 7ad698706..5d907dfb0 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);return r.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(a.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):r):r;var o};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const j=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},I=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:I(e)?I(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(j(t.update([u]).firstTerm()),k(h,u,d,a)):(j(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var C=T,O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V,$={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var J={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),L.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const M=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=M(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=M(this.document,e);return this.document=t,this.all()}var r;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,J,W,K);var U={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Q=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const ge=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},ye=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ge.test(a[s].normal)&&([l,u]=a[s].normal.split(ge));let c=ye(o,a[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](a,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](a,s)),c?(c=ve(c,e),Z(n,[i,s],c),pe(n[i],e,s,c.length)):me.test(a[s].normal)?(c=ue(a,s),c&&(c=ve(c,e),Z(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),pe(n[i],e,s,c.length))):(c=de(a,s),c&&(c=ve(c,e),Z(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Pe.test(l)){let e=l.replace(Pe,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},je={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]},Ie=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ge=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Te=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e},Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ie(e,this.world));var a;let r=De(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ie(e,this.world());return Te(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Be=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Oe(n,t),Object.keys(a).forEach(e=>{a[e]=Oe(a[e],t)}),{ptrs:n,byGroup:a}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),Ve=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,$e=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=$e(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Ve(e))return e.fullPointer.length>0;if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Ve(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=$e(e,n,this.world);let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},He={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},Je=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Me=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},We={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)}};We.split=We.splitAfter;var Ke=We;const qe=Object.assign({},Se,He,Ke);qe.lookBehind=qe.before,qe.lookBefore=qe.before,qe.lookAhead=qe.after,qe.lookAfter=qe.after,qe.notIf=qe.ifNo;var Ue=function(e){Object.assign(e.prototype,qe)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ze=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qe=/ /g,_e=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{_e(e)?n.push(e):n=n.concat(e.split(Ze))}),n=Ye(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||_e(e)?a.push(e):a=a.concat(e.split(Qe))}),a=Ye(a),a};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),rt=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===rt(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===rt(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===rt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===rt(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===rt(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===rt(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===rt(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===rt(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let a=n.choices.length-1;n.choices[a]=st(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===rt(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===rt(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===rt(e))return e=lt(e),n.chunk=at(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===rt(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=at(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&ht.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e},gt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return a.push(n(e.root,t.model)),a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},mt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let a=0;a{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},pt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Xe(e);return a=a.map(e=>ct(e,t)),a=dt(a,n),a=gt(a,n),a=mt(a),a};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),Et=(e,t)=>-1!==e.pre.indexOf(t),jt={hasQuote:e=>vt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||Et(e,"..")||Et(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>Pt.test(e.post)||Pt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};jt.hasQuotation=jt.hasQuote;var It=jt;let Gt=function(){};Gt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(yt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof It[t.method]&&!0===It[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Gt(e,t,n,a)):t.choices.some(t=>Gt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var Nt=Gt;const Dt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(xt(e,e.t).length=a-e.t),e.t=a,!0)};const Ct=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Nt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Nt(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(xt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},zt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==Nt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null},Vt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Nt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Nt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Ft=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},$t=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},St=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Vt(e),a.implicit&&e.terms[e.t+1]&&$t(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ft(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=xt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},Ht=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Dt(e,r)){if(!0!==Nt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative&&!zt(r))return null;if(!0!==e.optional)return null}else if(!St(r))return null}else if(!St(r))return null}else if(!St(r))return null}else if(!Bt(r))return null}else if(!Ot(r))return null}else if(!Tt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}},Lt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Jt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Mt=function(e,t,n){let a=Ht(e,t,0,e.length);return a?(a=Jt(a,n),a):null};var Wt={api:Ue,methods:{one:{termMethods:It,parseMatch:pt,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Mt(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,qt=/^#./,Ut=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Qt,""),Yt.test(r)&&(r=" "),r=r.replace(_t,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Qt,""),r="-"===r?" ":r.replace(Zt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Xt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let an=[],rn=0;for(;rn<64;)an[rn]=0|4294967296*Math.sin(++rn%Math.PI);function on(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(rn=i=0;rn>4]+an[i]+~~o[rn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},sn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&cn[o]&&(r[o]=cn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn,gn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const mn="";var pn={green:e=>""+e+mn,red:e=>""+e+mn,blue:e=>""+e+mn,magenta:e=>""+e+mn,cyan:e=>""+e+mn,yellow:e=>""+e+mn,black:e=>""+e+mn,dim:e=>""+e+mn,i:e=>""+e+mn},fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n ──────")),t.forEach(e=>{console.log(pn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=pn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=pn.blue(" │ ")+pn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},yn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${pn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},Pn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},In=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Gn=function(e,t){let n=In(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a},Nn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:In,splitAll:Gn}}},Dn=function(e,t){let n=e.concat(t),a=In(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>jn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Tn=function(e,t){let n=In(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>jn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},Bn={union:function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};Bn.and=Bn.union,Bn.intersection=function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.not=function(e){e=Cn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.difference=Bn.not,Bn.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},Bn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Dn(e,[t])}),e=On(e,this.document),this.update(e)};var zn={methods:Nn,api:function(e){Object.assign(e.prototype,Bn)}};const Vn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Fn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Vn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Vn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Vn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e},$n=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})},Sn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},Hn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r},Ln=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Fn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=$n(r,t.hooks);return o=Sn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Hn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Ln(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Mn=/ /,Wn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Kn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Mn.test(t))!function(e,t,n,a){let r=t.split(Mn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Kn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,a))};var Un=qn,Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Zn({id:e})),t}return[Zn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),ea=e=>(e=e||"").trim(),ta=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:_n(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Zn({});return e.forEach(e=>{if((e=Zn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Zn),t);var t},na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Yn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},aa=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ra={text:na,txt:na,array:aa,flat:aa},oa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(na(e,!0)),null):ra.hasOwnProperty(t)?ra[t](e):e},ia=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sa=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=ea(e),!sa.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Zn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(ea(e),t)),this;e=ea(e);let n=Zn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=ea(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ia(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ia(this.json),oa(this.json,e)}debug(){return ia(this.json),oa(this.json,"debug"),this}}const la=function(e){let t=ta(e);return new g$1(t)};la.prototype.plugin=function(e){e(this)};var ua={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ca=function(e){if(ua.hasOwnProperty(e.id))return ua[e.id];if(ua.hasOwnProperty(e.is))return ua[e.is];let t=e._cache.parents.find(e=>ua[e]);return ua[t]};var ha=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ca(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const da=function(e){return e?"string"==typeof e?[e]:e:[]};var ga=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=da(e[t].children),e[t].not=da(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},ma={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=ga(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return la(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ha(n)}}};const pa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),pa(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return pa(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}},ba=function(e){Object.assign(e.prototype,fa)},ya={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const va=new Set(["Auxiliary","Possessive"]);var wa={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(va.has(e)||!t.hasOwnProperty(n))return 1;if(va.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ma,api:ba,lib:ya};const ka=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Aa=function(e){let t=[],n=e.split(Pa);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const La=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ja=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ma=/['’]/,Wa=/^[a-z]\.([a-z]\.)+/i,Ka=/^[-+.][0-9]/,qa=/^'[0-9]{2}/;var Ua=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(La,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Ka.test(e)?"'"===n&&qa.test(e)?(n="",t):"":(n="",t)))).replace(Ja,r=>(a=r,Ma.test(r)&&/[sn]['’]$/.test(t)&&!1===Ma.test(n)?(a=a.replace(Ma,""),"'"):!0===Wa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ra=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Za=/([A-Z]\.)+[A-Z]?,?$/,Qa=/^[A-Z]\.,?$/,_a=/[A-Z]{2,}('s|,)?$/,Ya=/([a-z]\.)+[a-z]\.?$/;var Xa=function(e){return function(e){return!0===Za.test(e)||!0===Ya.test(e)||!0===Qa.test(e)||!0===_a.test(e)}(e)&&(e=e.replace(/\./g,"")),e},er=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ra(a),a=n(a,t),a=Xa(a),e.normal=a},tr={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:Ta,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Sa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Va(n),n=Ba(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ua(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{er(e,t)}),n})}}}},nr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ar={},rr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ar[t]=!0,rr[t]="Abbreviation",void 0!==e[1]&&(rr[t]=[rr[t],e[1]])})});var or=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ir={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},sr={};Object.keys(ir).forEach((function(e){ir[e].split("").forEach((function(t){sr[t]=e}))}));const lr=/\//,ur=/[a-z]\.[a-z]/i,cr=/[0-9]/;var hr=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),lr.test(n)&&!ur.test(n)&&!cr.test(n)){let t=n.split(lr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const dr=/^\p{Letter}+-\p{Letter}+$/u;var gr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),dr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},mr=function(e){let t=0,n=0,a=e.document;for(let e=0;epr(e,hr),machine:e=>pr(e,gr),normal:e=>pr(e,er),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const vr={safe:!0,min:3};var wr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=br},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},vr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=yr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(En),m.extend(Wt),m.extend(zn),m.extend(wa),m.plugin(we),m.extend(fr),m.plugin(f),m.extend(Ce),m.extend(wr),m.extend(je),m.extend(Jn);var kr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Pr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ar=36,Er="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",jr=Er.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ir=function(e){if(void 0!==jr[e])return jr[e];let t=0,n=1,a=Ar,r=1;for(;n=0;n--,r*=Ar){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Gr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Dr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=xr(Pr[e]);Br.test(e)?Object.keys(t).forEach(t=>{if(Vr[t]=e,"Noun|Verb"===e){let e=Or(t,Fr);Vr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{zr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","zr[e]="Emoticon"),delete zr[""],delete zr.null,delete zr[" "];const $r="Adjective";var Sr={beforeTags:{Determiner:$r,Possessive:$r},afterTags:{Adjective:$r},beforeWords:{seem:$r,seemed:$r,seems:$r,feel:$r,feels:$r,felt:$r,appear:$r,appears:$r,appeared:$r,also:$r,over:$r,under:$r,too:$r,it:$r,but:$r,still:$r,really:$r,quite:$r,well:$r,very:$r,deeply:$r,profoundly:$r,extremely:$r,so:$r,badly:$r,mostly:$r,totally:$r,awfully:$r,rather:$r,nothing:$r,something:$r,anything:$r},afterWords:{too:$r,also:$r,or:$r}};const Hr="Gerund";var Lr={beforeTags:{Adverb:Hr,Preposition:Hr,Conjunction:Hr},afterTags:{Adverb:Hr,Possessive:Hr,Person:Hr,Pronoun:Hr,Determiner:Hr,Copula:Hr,Preposition:Hr,Conjunction:Hr,Comparative:Hr},beforeWords:{been:Hr,keep:Hr,continue:Hr,stop:Hr,am:Hr,be:Hr,me:Hr,began:Hr,start:Hr,starts:Hr,started:Hr,stops:Hr,stopped:Hr,help:Hr,helps:Hr,avoid:Hr,avoids:Hr,love:Hr,loves:Hr,loved:Hr,hate:Hr,hates:Hr,hated:Hr},afterWords:{you:Hr,me:Hr,her:Hr,him:Hr,them:Hr,their:Hr,it:Hr,this:Hr,there:Hr,on:Hr,about:Hr,for:Hr}},Jr={beforeTags:Object.assign({},Sr.beforeTags,Lr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Sr.afterTags,Lr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Sr.beforeWords,Lr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Sr.afterWords,Lr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Mr="Singular";var Wr={beforeTags:{Determiner:Mr,Possessive:Mr,Acronym:Mr,Noun:Mr,Adjective:Mr,PresentTense:Mr,Gerund:Mr,PastTense:Mr,Infinitive:Mr,Date:Mr},afterTags:{Value:Mr,Modal:Mr,Copula:Mr,PresentTense:Mr,PastTense:Mr,Demonym:Mr},beforeWords:{the:Mr,with:Mr,without:Mr,of:Mr,for:Mr,any:Mr,all:Mr,on:Mr,cut:Mr,cuts:Mr,save:Mr,saved:Mr,saves:Mr,make:Mr,makes:Mr,made:Mr,minus:Mr,plus:Mr,than:Mr,another:Mr,versus:Mr,neither:Mr,favorite:Mr,best:Mr,daily:Mr,weekly:Mr,linear:Mr,binary:Mr,mobile:Mr,lexical:Mr,technical:Mr,computer:Mr,scientific:Mr,formal:Mr},afterWords:{of:Mr,system:Mr,aid:Mr,method:Mr,utility:Mr,tool:Mr,reform:Mr,therapy:Mr,philosophy:Mr,room:Mr,authority:Mr,says:Mr,said:Mr,wants:Mr,wanted:Mr}};const Kr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qr={beforeTags:Object.assign({},Sr.beforeTags,Wr.beforeTags,Kr.beforeTags),afterTags:Object.assign({},Sr.afterTags,Wr.afterTags),beforeWords:Object.assign({},Sr.beforeWords,Wr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sr.afterWords,Wr.afterWords)};const Ur={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Rr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Zr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var _r={beforeTags:Object.assign({},Sr.beforeTags,Ur),afterTags:Object.assign({},Sr.afterTags,Rr),beforeWords:Object.assign({},Sr.beforeWords,Zr),afterWords:Object.assign({},Sr.afterWords,Qr)};const Yr="Infinitive";var Xr={beforeTags:{Modal:Yr,Adverb:Yr,Negative:Yr,Plural:Yr},afterTags:{Determiner:Yr,Adverb:Yr,Possessive:Yr,Preposition:Yr},beforeWords:{i:Yr,we:Yr,you:Yr,they:Yr,to:Yr,please:Yr,will:Yr,have:Yr,had:Yr,would:Yr,could:Yr,should:Yr,do:Yr,did:Yr,does:Yr,can:Yr,must:Yr,us:Yr,me:Yr,he:Yr,she:Yr,it:Yr,being:Yr},afterWords:{the:Yr,me:Yr,you:Yr,him:Yr,her:Yr,them:Yr,it:Yr,a:Yr,an:Yr,up:Yr,down:Yr,by:Yr,out:Yr,off:Yr,under:Yr,when:Yr,all:Yr,to:Yr,because:Yr,although:Yr,before:Yr,how:Yr,otherwise:Yr,together:Yr,though:Yr,yet:Yr}};const eo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var to={beforeTags:Object.assign({},Sr.beforeTags,Xr.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Sr.afterTags,Xr.afterTags,eo.afterTags),beforeWords:Object.assign({},Sr.beforeWords,Xr.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Sr.afterWords,Xr.afterWords,{to:void 0})};const no={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ao={},ro={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var io={beforeTags:Object.assign({},Lr.beforeTags,Wr.beforeTags,no),afterTags:Object.assign({},Lr.afterTags,Wr.afterTags,ao),beforeWords:Object.assign({},Lr.beforeWords,Wr.beforeWords,ro),afterWords:Object.assign({},Lr.afterWords,Wr.afterWords,oo)},so={beforeTags:Object.assign({},Xr.beforeTags,Wr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xr.afterTags,Wr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xr.beforeWords,Wr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xr.afterWords,Wr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const lo="Person";var uo={beforeTags:{Honorific:lo,Person:lo,Preposition:lo},afterTags:{Person:lo,ProperNoun:lo,Verb:lo},ownTags:{ProperNoun:lo},beforeWords:{hi:lo,hey:lo,yo:lo,dear:lo,hello:lo},afterWords:{said:lo,says:lo,told:lo,tells:lo,feels:lo,felt:lo,seems:lo,thinks:lo,thought:lo,spends:lo,spendt:lo,plays:lo,played:lo,sing:lo,sang:lo,learn:lo,learned:lo,wants:lo,wanted:lo}};const co="Month",ho={beforeTags:{Date:co,Value:co},afterTags:{Date:co,Value:co},beforeWords:{by:co,in:co,on:co,during:co,after:co,before:co,between:co,until:co,til:co,sometime:co,of:co,this:co,next:co,last:co,previous:co,following:co},afterWords:{sometime:co,in:co,of:co,until:co,the:co}};var go={beforeTags:Object.assign({},uo.beforeTags,ho.beforeTags),afterTags:Object.assign({},uo.afterTags,ho.afterTags),beforeWords:Object.assign({},uo.beforeWords,ho.beforeWords),afterWords:Object.assign({},uo.afterWords,ho.afterWords)};const mo={Place:"Place"},po={Place:"Place",Abbreviation:"Place"},fo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let yo="Unit";const vo={"Adj|Gerund":Jr,"Adj|Noun":qr,"Adj|Past":_r,"Adj|Present":to,"Noun|Verb":so,"Noun|Gerund":io,"Person|Noun":{beforeTags:Object.assign({},Wr.beforeTags,uo.beforeTags),afterTags:Object.assign({},Wr.afterTags,uo.afterTags),beforeWords:Object.assign({},Wr.beforeWords,uo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Wr.afterWords,uo.afterWords)},"Person|Date":go,"Person|Verb":{beforeTags:Object.assign({},uo.beforeTags,Xr.beforeTags),afterTags:Object.assign({},uo.afterTags,Xr.afterTags),beforeWords:Object.assign({},uo.beforeWords,Xr.beforeWords),afterWords:Object.assign({},uo.afterWords,Xr.afterWords)},"Person|Place":{beforeTags:Object.assign({},mo,uo.beforeTags),afterTags:Object.assign({},po,uo.afterTags),beforeWords:Object.assign({},fo,uo.beforeWords),afterWords:Object.assign({},bo,uo.afterWords)},"Unit|Noun":{beforeTags:{Value:yo},afterTags:{},beforeWords:{per:yo,every:yo,each:yo,square:yo,cubic:yo,sq:yo,metric:yo},afterWords:{per:yo,squared:yo,cubed:yo,long:yo}}},wo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};vo["Plural|Verb"]={beforeWords:wo(vo["Noun|Verb"].beforeWords,{}),afterWords:wo(vo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wo(vo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wo(vo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ko=vo;const Po="Adjective",Ao="Infinitive",Eo="PresentTense",jo="Singular",Io="PastTense",Go="Adverb",No="Plural",Do="Actor",xo="Verb",To="Noun",Co="LastName",Oo="Modal",Bo="Participle";var zo=[null,null,{ea:jo,ia:To,ic:Po,ly:Go,"'n":xo,"'t":xo},{oed:Io,ued:Io,xed:Io," so":Go,"'ll":Oo,"'re":"Copula",azy:Po,eer:To,end:xo,ped:Io,ffy:Po,ify:Ao,ing:"Gerund",ize:Ao,ibe:Ao,lar:Po,mum:Po,nes:Eo,nny:Po,ous:Po,que:Po,rol:jo,sis:jo,ogy:jo,oid:jo,ian:jo,zes:Eo,eld:Io,ken:Bo,ven:Bo,ten:Bo,ect:Ao,ict:Ao,ign:Ao,ful:Po,bal:Po},{amed:Io,aped:Io,ched:Io,lked:Io,rked:Io,reed:Io,nded:Io,mned:Po,cted:Io,dged:Io,ield:jo,akis:Co,cede:Ao,chuk:Co,czyk:Co,ects:Eo,ends:xo,enko:Co,ette:jo,wner:jo,fies:Eo,fore:Go,gate:Ao,gone:Po,ices:No,ints:No,ruct:Ao,ines:No,ions:No,less:Po,llen:Po,made:Po,nsen:Co,oses:Eo,ould:Oo,some:Po,sson:Co,tion:jo,tage:To,ique:jo,tive:Po,tors:To,vice:jo,lier:jo,fier:jo,wned:Io,gent:jo,tist:jo,pist:jo,rist:jo,mist:jo,yist:jo,vist:jo,lite:jo,site:jo,rite:jo,mite:jo,bite:jo,mate:jo,date:jo,ndal:jo,vent:jo,uist:jo,gist:jo,note:jo,cide:jo,wide:Po,vide:Ao,ract:Ao,duce:Ao,pose:Ao,eive:Ao,lyze:Ao,lyse:Ao,iant:Po,nary:Po},{elist:jo,holic:jo,phite:jo,tized:Io,urned:Io,eased:Io,ances:No,bound:Po,ettes:No,fully:Go,ishes:Eo,ities:No,marek:Co,nssen:Co,ology:To,osome:jo,tment:jo,ports:No,rough:Po,tches:Eo,tieth:"Ordinal",tures:No,wards:Go,where:Go,archy:To,pathy:To,opoly:To,embly:To,phate:To,ndent:jo,scent:jo,onist:jo,anist:jo,alist:jo,olist:jo,icist:jo,ounce:Ao,iable:Po,borne:Po,gnant:Po,inant:Po,igent:Po,atory:Po,rient:jo,dient:jo},{auskas:Co,parent:jo,cedent:jo,ionary:jo,cklist:jo,keeper:Do,logist:Do,teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const Vo="Adjective",Fo="Noun",$o="Verb";var So=[null,null,{},{neo:Fo,bio:Fo,"de-":$o,"re-":$o,"un-":$o},{anti:Fo,auto:Fo,faux:Vo,hexa:Fo,kilo:Fo,mono:Fo,nano:Fo,octa:Fo,poly:Fo,semi:Vo,tele:Fo,"pro-":Vo,"mis-":$o,"dis-":$o,"pre-":Vo},{anglo:Fo,centi:Fo,ethno:Fo,ferro:Fo,grand:Fo,hepta:Fo,hydro:Fo,intro:Fo,macro:Fo,micro:Fo,milli:Fo,nitro:Fo,penta:Fo,quasi:Vo,radio:Fo,tetra:Fo,"omni-":Vo,"post-":Vo},{pseudo:Vo,"extra-":Vo,"hyper-":Vo,"inter-":Vo,"intra-":Vo,"deca-":Vo},{electro:Fo}];const Ho="Adjective",Lo="Infinitive",Jo="PresentTense",Mo="Singular",Wo="PastTense",Ko="Adverb",qo="Expression",Uo="Actor",Ro="Verb",Zo="Noun",Qo="LastName";var _o={a:[[/.[aeiou]na$/,Zo,"tuna"],[/.[oau][wvl]ska$/,Qo],[/.[^aeiou]ica$/,Mo,"harmonica"],[/^([hyj]a+)+$/,qo,"haha"]],c:[[/.[^aeiou]ic$/,Ho]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wo,"rammed"],[/.[aeiou][sg]hed$/,Wo,"gushed"],[/.[aeiou]red$/,Wo,"hired"],[/.[aeiou]r?ried$/,Wo,"hurried"],[/[^aeiou]ard$/,Mo,"steward"],[/[aeiou][^aeiou]id$/,Ho,""],[/.[vrl]id$/,Ho,"livid"],[/..led$/,Wo,"hurled"],[/.[iao]sed$/,Wo,""],[/[aeiou]n?[cs]ed$/,Wo,""],[/[aeiou][rl]?[mnf]ed$/,Wo,""],[/[aeiou][ns]?c?ked$/,Wo,"bunked"],[/[aeiou]gned$/,Wo],[/[aeiou][nl]?ged$/,Wo],[/.[tdbwxyz]ed$/,Wo],[/[^aeiou][aeiou][tvx]ed$/,Wo],[/.[cdflmnprstv]ied$/,Wo,"emptied"]],e:[[/.[lnr]ize$/,Lo,"antagonize"],[/.[^aeiou]ise$/,Lo,"antagonise"],[/.[aeiou]te$/,Lo,"bite"],[/.[^aeiou][ai]ble$/,Ho,"fixable"],[/.[^aeiou]eable$/,Ho,"maleable"],[/.[ts]ive$/,Ho,"festive"],[/[a-z]-like$/,Ho,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ho,"cornish"],[/.v[iy]ch$/,Qo,"..ovich"],[/^ug?h+$/,qo,"ughh"],[/^uh[ -]?oh$/,qo,"uhoh"],[/[a-z]-ish$/,Ho,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Qo,"polish-male"]],k:[[/^(k){2}$/,qo,"kkkk"]],l:[[/.[gl]ial$/,Ho,"familial"],[/.[^aeiou]ful$/,Ho,"fitful"],[/.[nrtumcd]al$/,Ho,"natal"],[/.[^aeiou][ei]al$/,Ho,"familial"]],m:[[/.[^aeiou]ium$/,Mo,"magnesium"],[/[^aeiou]ism$/,Mo,"schism"],[/^[hu]m+$/,qo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ho,"republican"],[/[^aeiou]ician$/,Uo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,qo,"noooo"],[/^(yo)+$/,qo,"yoo"],[/^wo{2,}[pt]?$/,qo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mo],[/[^i]fer$/,Lo],[/.[^aeiou][ao]pher$/,Uo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ho],[/[aeiou].*ist$/,Ho],[/^[a-z]et$/,Ro]],s:[[/.[^aeiou]ises$/,Jo],[/.[rln]ates$/,Jo],[/.[^z]ens$/,Ro],[/.[lstrn]us$/,Mo],[/.[aeiou]sks$/,Jo],[/.[aeiou]kes$/,Jo],[/[aeiou][^aeiou]is$/,Mo],[/[a-z]'s$/,Zo],[/^yes+$/,qo]],v:[[/.[^aeiou][ai][kln]ov$/,Qo]],y:[[/.[cts]hy$/,Ho],[/.[st]ty$/,Ho],[/.[tnl]ary$/,Ho],[/.[oe]ry$/,Mo],[/[rdntkbhs]ly$/,Ko],[/.(gg|bb|zz)ly$/,Ho],[/...lly$/,Ko],[/.[gk]y$/,Ho],[/[bszmp]{2}y$/,Ho],[/.[ai]my$/,Ho],[/[ea]{2}zy$/,Ho],[/.[^aeiou]ity$/,Mo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ai={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ri={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(ii);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ii,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},di=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const gi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),mi=hi(ri),pi=hi(ni),fi=hi(ai),bi=di(gi),yi=di(mi),vi=di(pi),wi=di(fi),ki=hi(ti),Pi=hi(oi);var Ai={fromPast:gi,fromPresent:mi,fromGerund:pi,fromParticiple:fi,toPast:bi,toPresent:yi,toGerund:vi,toParticiple:wi,toComparative:ki,toSuperlative:Pi,fromComparative:di(ki),fromSuperlative:di(Pi)},Ei=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),ji=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Ii=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Gi[t].forEach(n=>e[n]=t),e),{});var Ni=Gi,Di=function(e){let t=e.substring(e.length-3);if(!0===Ni.hasOwnProperty(t))return Ni[t];let n=e.substring(e.length-2);return!0===Ni.hasOwnProperty(n)?Ni[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const xi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ti=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Di(e)),xi.hasOwnProperty(e))c=xi[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,a);else if("PresentTense"===n)c=si(l,r);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ci=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,a),Gerund:si(i,r),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Oi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Bi="ically",zi=new Set(["analyt"+Bi,"chem"+Bi,"class"+Bi,"clin"+Bi,"crit"+Bi,"ecolog"+Bi,"electr"+Bi,"empir"+Bi,"frant"+Bi,"grammat"+Bi,"ident"+Bi,"ideolog"+Bi,"log"+Bi,"mag"+Bi,"mathemat"+Bi,"mechan"+Bi,"med"+Bi,"method"+Bi,"method"+Bi,"mus"+Bi,"phys"+Bi,"phys"+Bi,"polit"+Bi,"pract"+Bi,"rad"+Bi,"satir"+Bi,"statist"+Bi,"techn"+Bi,"technolog"+Bi,"theoret"+Bi,"typ"+Bi,"vert"+Bi,"whims"+Bi]),Vi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Fi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),$i={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?zi.has(e)?e.replace(/ically/,"ical"):Fi.has(e)?null:$i.hasOwnProperty(e)?$i[e]:Oi(e,Vi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Li={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ji=function(e){if(Li.hasOwnProperty(e))return Li[e];let t=Oi(e,Hi);return t||e+"ly"};const Mi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Wi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ki=new Set(["terrible","annoying"]),qi=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Or,nounToSingular:Ii,verbToInfinitive:Ti,getTense:Di,verbConjugate:Ci,adjToSuperlative:qi,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Ji,adjToNoun:function(e){if(Wi.hasOwnProperty(e))return Wi[e];if(Ki.has(e))return null;let t=Oi(e,Mi);return t||e+"ness"}}}},Qi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const _i=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=_i(n,"Infinitive","PastTense"),Object.assign(s,l),l=_i(a,"Infinitive","Verb"),Object.assign(s,l),l=_i(r,"Infinitive","Gerund"),Object.assign(s,l),l=_i(o,"Adjective","Superlative"),Object.assign(s,l),l=_i(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:Zi};let{lex:a,_multi:r}=Zi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},ns=function(e,t,n){let a=Ci(e,Xi);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},as=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(r,a,!1),"Adj|Present"===o&&(ns(r,a,!0),function(e,t,n){let a=qi(e,n);t[a]=t[a]||"Superlative";let r=Ui(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ti(r,Xi,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ti(r,Xi,"PastTense");a[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let rs={one:{_multiCache:{},lexicon:zr},two:{irregularPlurals:kr,models:Ai,suffixPatterns:zo,prefixPatterns:So,endsWith:_o,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Vr,clues:ko,uncountable:{},orgWords:Ei}};rs=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=as(e.two.switches,e),e=Yi(e),e=Qi(e)}(rs);var os=rs;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(is.test(r.normal)){let e=r.normal.replace(is,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},ls=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const gs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ms=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Di(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(a)};const ps=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,bs=["Date","Month","WeekDay","Unit"],ys=/^[IVXLCDM]{2,}$/,vs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ks=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===ps.test(o)&&!1===fs.test(o)?bs.find(e=>a.tags.has(e))?null:(ms(e,t,n),a.tags.has("Noun")||a.tags.clear(),ls(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ys.test(o)&&vs.test(o)&&!ws[a.normal]?(ls(a,"RomanNumeral","2-xvii"),!0):null};const Ps=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var As=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Ps(a.normal,n.two.suffixPatterns);if(null!==e)return ls(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Ps(a.implicit,n.two.suffixPatterns),null!==e))return ls(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Es=/['‘’‛‵′`´]/,js=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return ls(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Ns=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ds=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ns.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},xs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ts=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Ds(r)||Ds(o))return ls(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(xs(r)||xs(o))return ls(n,"Year","2-tagYear-close");if(Ts(e[t-2])||Ts(e[t+2]))return ls(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Bs=/^[A-Z-]+$/,zs=/([A-Z]\.)+[A-Z]?,?$/,Vs=/[A-Z]{2,}('s|,)?$/,Fs=/([a-z]\.)+[a-z]\.?$/,$s={I:!0,A:!0};var Ss=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Bs.test(n)||n.length>5||$s.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==zs.test(n)&&!0!==Fs.test(n)&&!0!==Os.test(n)&&!0!==Vs.test(n))}(a,n)?(a.tags.clear(),ls(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!$s.hasOwnProperty(a.text)&&Os.test(a.text)?(a.tags.clear(),ls(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(ls(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Bs.test(a.text)&&a.text.length<=6?(ls(a,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ls=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Js=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],r),l=l||Hs(e[t+1],o),l=l||Ls(e[t-1],a),l=l||Ls(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ms(e,t,n),e[t].confidence=.2,!0}return null};const Ms=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Ws=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Ms(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Ms(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Ks=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ms(e,t,n),e[t].confidence=.1)};const qs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>qs(e,t),"Adj|Noun":(e,t)=>qs(e,t),"Adj|Past":(e,t)=>qs(e,t),"Adj|Present":(e,t)=>qs(e,t),"Noun|Gerund":(e,t)=>qs(e,t),"Noun|Verb":(e,t)=>qs(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>qs(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>qs(e,t),"Person|Verb":(e,t)=>0!==t&&qs(e,t)};const Zs="undefined"!=typeof process&&process.env?process.env:self.env||{},Qs=/^(under|over|mis|re|un|dis|semi)-?/,_s=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Zs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ys=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Zs.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a},Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Is,checkCase:ks,checkPrefix:Gs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Js,orgWords:Ws,nounFallback:Ks,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Qs.test(l)&&!o[l]&&(l=l.replace(Qs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=_s(e[t+1],n.afterWords);return o=o||_s(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,r),o=o||Ys(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Rs[o]&&(u=Rs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):Zs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},rl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const fl=/'/;var bl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const yl=/'/;var vl=function(e,t){let n=e[t].normal.split(yl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const kl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Pl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(kl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Pl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const El=/'/,jl=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},Il={d:(e,t)=>vl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bl(e,t)},Gl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Nl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===El.test(a[o].normal)&&([,i]=a[o].normal.split(El));let s=null;Il.hasOwnProperty(i)&&(s=Il[i](a,o,t)),s&&(s=Gl(s,e),pl(n,[r,o],s),jl(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ml.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=gl},hooks:["contractionTwo"]};const Dl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",xl=["i","we","they"];let Tl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Dl+" #Person",tag:"Person",reason:"randy-smith"},{match:Dl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Dl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:xl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:xl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:xl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Cl=Cl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Tl}},hooks:["postTagger"]},Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter((e,t)=>n.some(e=>a[t].has(e)))},zl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Bl(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}},Vl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Fl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Vl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this},$l={api:function(e){e.prototype.swap=Fl}};return m.plugin(cl),m.plugin(Nl),m.plugin(Ol),m.plugin(zl),m.plugin($l),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);return r.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(a.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):c(e)?c(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):r):r;var o};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.4.0";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),y=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},v=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?v(n):(v(n),v([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),y(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1,P=P>46655?0:P,t=t>46655?0:t,n=n>1294?0:n;let a=A(P.toString(36));a+=A(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const j=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},I=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:I(e)?I(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(j(t.update([u]).firstTerm()),k(h,u,d,a)):(j(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var C=T,B=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const O={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=B(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};O.delete=O.remove;var z=O;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V,$={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const M=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return y(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=M(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=M(this.document,e);return this.document=t,this.all()}var r;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,L,W,K);var U={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Q=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null},te=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const ge=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},ye=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ge.test(a[s].normal)&&([l,u]=a[s].normal.split(ge));let c=ye(o,a[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](a,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](a,s)),c?(c=ve(c,e),Z(n,[i,s],c),pe(n[i],e,s,c.length)):me.test(a[s].normal)?(c=ue(a,s),c&&(c=ve(c,e),Z(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),pe(n[i],e,s,c.length))):(c=de(a,s),c&&(c=ve(c,e),Z(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Pe.test(l)){let e=l.replace(Pe,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},je={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]},Ie=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ge=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Te=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};const Ce={buildTrie:function(e){const t=Ie(e,this.world());return Te(t)}};Ce.compile=Ce.buildTrie;var Be={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ie(e,this.world));var a;let r=De(this,n,t);return r=r.settle(),r}},lib:Ce};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},ze=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Oe(n,t),Object.keys(a).forEach(e=>{a[e]=Oe(a[e],t)}),{ptrs:n,byGroup:a}},Ve=e=>"[object Object]"===Object.prototype.toString.call(e),Fe=e=>e&&Ve(e)&&!0===e.isView,$e=e=>e&&Ve(e)&&!0===e.isNet,Se=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var He={matchOne:function(e,t,n){const a=this.methods.one;if(Fe(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=ze(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Fe(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Se(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=ze(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Fe(e))return e.fullPointer.length>0;if($e(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Fe(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Fe(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},Je={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},Me=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},We=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},Ke={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Me(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Me(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Me(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Ke.split=Ke.splitAfter;var qe=Ke;const Ue=Object.assign({},He,Je,qe);Ue.lookBehind=Ue.before,Ue.lookBefore=Ue.before,Ue.lookAhead=Ue.after,Ue.lookAfter=Ue.after,Ue.notIf=Ue.ifNo;var Re=function(e){Object.assign(e.prototype,Ue)};const Ze=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ye=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Xe=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var et=function(e){let t=e.split(Ze),n=[];t.forEach(e=>{Ye(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Xe(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ye(e)?a.push(e):a=a.concat(e.split(_e))}),a=Xe(a),a};const tt=/\{([0-9]+)?(, *[0-9]*)?\}/,nt=/&&/,at=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),ot=e=>e.charAt(e.length-1),it=e=>e.charAt(0),st=e=>e.substring(1),lt=e=>e.substring(0,e.length-1),ut=function(e){return e=st(e),e=lt(e)},ct=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ot(e)&&(n.end=!0,e=lt(e)),"^"===it(e)&&(n.start=!0,e=st(e)),("["===it(e)||"]"===ot(e))&&(n.group=null,"["===it(e)&&(n.groupStart=!0),"]"===ot(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===it(e))){const t=at.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ot(e)&&(n.greedy=!0,e=lt(e)),"*"!==e&&"*"===ot(e)&&"\\*"!==e&&(n.greedy=!0,e=lt(e)),"?"===ot(e)&&(n.optional=!0,e=lt(e)),"!"===it(e)&&(n.negative=!0,e=st(e)),"~"===it(e)&&"~"===ot(e)&&e.length>2&&(e=ut(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===it(e)&&")"===ot(e)){nt.test(e)?(n.choices=e.split(nt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=st(n.choices[0]);let a=n.choices.length-1;n.choices[a]=lt(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ct(e,t))),e=""}if("/"===it(e)&&"/"===ot(e))return e=ut(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===it(e)&&"}"===ot(e)){if(e=ut(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===it(e)&&">"===ot(e))return e=ut(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===it(e)&&"%"===ot(e))return e=ut(e),n.switch=e,n}return!0===tt.test(e)&&(e=e.replace(tt,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===it(e)?(n.tag=st(e),n.tag=rt(n.tag),n):"@"===it(e)?(n.method=st(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ht=ct;const dt=/[a-z0-9][-–—][a-z]/i;var gt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&dt.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e},mt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return a.push(n(e.root,t.model)),a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},pt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let a=0;a{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},ft=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=et(e);return a=a.map(e=>ht(e,t)),a=gt(a,n),a=mt(a,n),a=pt(a),a};const bt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var yt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),It={hasQuote:e=>wt.test(e.pre)||kt.test(e.post),hasComma:e=>Et(e,","),hasPeriod:e=>!0===Et(e,".")&&!1===Et(e,"..."),hasExclamation:e=>Et(e,"!"),hasQuestionMark:e=>Et(e,"?")||Et(e,"¿"),hasEllipses:e=>Et(e,"..")||Et(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>Et(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>At.test(e.post)||At.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};It.hasQuotation=It.hasQuote;var Gt=It;let Nt=function(){};Nt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Gt[t.method]&&!0===Gt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,a)):t.choices.some(t=>Nt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var Dt=Nt;const xt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Tt(e,e.t).length=a-e.t),e.t=a,!0)};const Bt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Dt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Dt(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Tt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Vt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==Dt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null},Ft=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Dt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Dt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},$t=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},St=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Ht=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Ft(e),a.implicit&&e.terms[e.t+1]&&St(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||$t(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Tt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},Jt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==xt(e,r)){if(!0!==Dt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative&&!Vt(r))return null;if(!0!==e.optional)return null}else if(!Ht(r))return null}else if(!Ht(r))return null}else if(!Ht(r))return null}else if(!zt(r))return null}else if(!Ot(r))return null}else if(!Ct(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}},Lt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Mt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let a=Jt(e,t,0,e.length);return a?(a=Mt(a,n),a):null};var Kt={api:Re,methods:{one:{termMethods:Gt,parseMatch:ft,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Ut=/^#./,Rt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Zt={html:function(e){let{starts:t,ends:n}=Rt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Xt.test(r)&&(r=" "),r=r.replace(Yt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),r="-"===r?" ":r.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&en.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var an=nn;let rn=[],on=0;for(;on<64;)rn[on]=0|4294967296*Math.sin(++on%Math.PI);function sn(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(on=i=0;on>4]+rn[i]+~~o[on|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const ln={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const cn=function(e,t){return Object.assign({},e,t)},hn={text:e=>tn(e,{keepPunct:!0},!1),normal:e=>tn(e,cn(an.normal,{keepPunct:!0}),!1),implicit:e=>tn(e,cn(an.implicit,{keepPunct:!0}),!1),machine:e=>tn(e,un,!1),root:e=>tn(e,cn(un,{form:"root"}),!1),hash:e=>sn(tn(e,{keepPunct:!0},!1)),offset:e=>{let t=hn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const dn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},ln,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&hn[o]&&(r[o]=hn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};dn.data=dn.json;var gn=dn,mn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const pn="";var fn={green:e=>""+e+pn,red:e=>""+e+pn,blue:e=>""+e+pn,magenta:e=>""+e+pn,cyan:e=>""+e+pn,yellow:e=>""+e+pn,black:e=>""+e+pn,dim:e=>""+e+pn,i:e=>""+e+pn},bn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(fn.blue("\n ──────")),t.forEach(e=>{console.log(fn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=fn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=fn.blue(" │ ")+fn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return fn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},yn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(fn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(fn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(fn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(fn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${fn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const wn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var kn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},An={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&an.hasOwnProperty(e)?t=Object.assign({},an[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},Gn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Nn=function(e,t){let n=Gn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a},Dn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Gn,splitAll:Nn}}},xn=function(e,t){let n=e.concat(t),a=Gn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>In(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Cn=function(e,t){let n=Gn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>In(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},On=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},zn={union:function(e){e=Bn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)}};zn.and=zn.union,zn.intersection=function(e){e=Bn(e,this);let t=Cn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},zn.not=function(e){e=Bn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=On(t,this.document),this.toView(t)},zn.difference=zn.not,zn.complement=function(){let e=this.all(),t=Tn(e.fullPointer,this.fullPointer);return t=On(t,this.document),this.toView(t)},zn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=xn(e,[t])}),e=On(e,this.document),this.update(e)};var Vn={methods:Dn,api:function(e){Object.assign(e.prototype,zn)}};const Fn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var $n=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Fn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Fn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Fn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Sn=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})},Hn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>a.has(e)).length>=e.minWant)})},Jn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r},Ln=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=$n(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Sn(r,t.hooks);return o=Hn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Jn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Ln(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const Wn=/ /,Kn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},qn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Wn.test(t))!function(e,t,n,a){let r=t.split(Wn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),qn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nUn(e,t,n,a))};var Rn=Un,Zn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Qn({id:e})),t}return[Qn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},ea=e=>"[object Array]"===Object.prototype.toString.call(e),ta=e=>(e=e||"").trim(),na=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||_n.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Yn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Qn({});return e.forEach(e=>{if((e=Qn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Xn(t=e).forEach(Qn),t);var t},aa=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Xn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},ra=function(e){let t=Xn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},oa={text:aa,txt:aa,array:ra,flat:ra},ia=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(aa(e,!0)),null):oa.hasOwnProperty(t)?oa[t](e):e},sa=e=>{Xn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},la=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=ta(e),!la.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Qn({});return new g$1(t)}add(e,t={}){if(ea(e))return e.forEach(e=>this.add(ta(e),t)),this;e=ta(e);let n=Qn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=ta(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Xn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Xn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Xn(this.json)}fillDown(){var e;return e=this.json,Xn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else ea(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){sa(this.json);let e=Xn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return sa(this.json),ia(this.json,e)}debug(){return sa(this.json),ia(this.json,"debug"),this}}const ua=function(e){let t=na(e);return new g$1(t)};ua.prototype.plugin=function(e){e(this)};var ca={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ha=function(e){if(ca.hasOwnProperty(e.id))return ca[e.id];if(ca.hasOwnProperty(e.is))return ca[e.is];let t=e._cache.parents.find(e=>ca[e]);return ca[t]};var da=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ha(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ga=function(e){return e?"string"==typeof e?[e]:e:[]};var ma=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ga(e[t].children),e[t].not=ga(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},pa={one:{setTag:Rn,unTag:Zn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=ma(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return ua(t).cache().fillDown().out("array")}(Object.assign({},t,e));return da(n)}}};const fa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var ba={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),fa(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return fa(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}},ya=function(e){Object.assign(e.prototype,ba)},va={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const wa=new Set(["Auxiliary","Possessive"]);var ka={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(wa.has(e)||!t.hasOwnProperty(n))return 1;if(wa.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:pa,api:ya,lib:va};const Pa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Aa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Ea=function(e){let t=[],n=e.split(Aa);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const Da=/\S/,xa=/^\s+/;var Ta=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Da.test(e))return[];e=e.replace(" "," ");let n=Ea(e),a=Ga(n),r=Na(a,t);if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Ja=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,La=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ma=/['’]/,Wa=/^[a-z]\.([a-z]\.)+/i,Ka=/^[-+.][0-9]/,qa=/^'[0-9]{2}/;var Ua=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ja,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Ka.test(e)?"'"===n&&qa.test(e)?(n="",t):"":(n="",t)))).replace(La,r=>(a=r,Ma.test(r)&&/[sn]['’]$/.test(t)&&!1===Ma.test(n)?(a=a.replace(Ma,""),"'"):!0===Wa.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}},Ra=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Za=/([A-Z]\.)+[A-Z]?,?$/,Qa=/^[A-Z]\.,?$/,_a=/[A-Z]{2,}('s|,)?$/,Ya=/([a-z]\.)+[a-z]\.?$/;var Xa=function(e){return function(e){return!0===Za.test(e)||!0===Ya.test(e)||!0===Qa.test(e)||!0===_a.test(e)}(e)&&(e=e.replace(/\./g,"")),e},er=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ra(a),a=n(a,t),a=Xa(a),e.normal=a};const tr=/[ .][A-Z]\.? *$/i,nr=/(?:\u2026|\.{2,}) *$/,ar=/\p{L}/u;var rr={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:Ta,isSentence:function(e,t){if(!1===ar.test(e))return!1;if(!0===tr.test(e))return!1;if(!0===nr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Sa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Va(n),n=Oa(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=Ua(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{er(e,t)}),n})}}}},or={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ir={},sr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ir[t]=!0,sr[t]="Abbreviation",void 0!==e[1]&&(sr[t]=[sr[t],e[1]])})});var lr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ur={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},cr={};Object.keys(ur).forEach((function(e){ur[e].split("").forEach((function(t){cr[t]=e}))}));const hr=/\//,dr=/[a-z]\.[a-z]/i,gr=/[0-9]/;var mr=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),hr.test(n)&&!dr.test(n)&&!gr.test(n)){let t=n.split(hr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const pr=/^\p{Letter}+-\p{Letter}+$/u;var fr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),pr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},br=function(e){let t=0,n=0,a=e.document;for(let e=0;eyr(e,mr),machine:e=>yr(e,fr),normal:e=>yr(e,er),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const Pr={safe:!0,min:3};var Ar={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=wr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},Pr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=kr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(jn),m.extend(Kt),m.extend(Vn),m.extend(ka),m.plugin(we),m.extend(vr),m.plugin(f),m.extend(Be),m.extend(Ar),m.extend(je),m.extend(Mn);var Er={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},jr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ir=36,Gr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Nr=Gr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Dr=function(e){if(void 0!==Nr[e])return Nr[e];let t=0,n=1,a=Ir,r=1;for(;n=0;n--,r*=Ir){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},xr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Cr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Br(jr[e]);Fr.test(e)?Object.keys(t).forEach(t=>{if(Sr[t]=e,"Noun|Verb"===e){let e=Vr(t,Hr);Sr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{$r[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","$r[e]="Emoticon"),delete $r[""],delete $r.null,delete $r[" "];const Jr="Adjective";var Lr={beforeTags:{Determiner:Jr,Possessive:Jr},afterTags:{Adjective:Jr},beforeWords:{seem:Jr,seemed:Jr,seems:Jr,feel:Jr,feels:Jr,felt:Jr,appear:Jr,appears:Jr,appeared:Jr,also:Jr,over:Jr,under:Jr,too:Jr,it:Jr,but:Jr,still:Jr,really:Jr,quite:Jr,well:Jr,very:Jr,deeply:Jr,profoundly:Jr,extremely:Jr,so:Jr,badly:Jr,mostly:Jr,totally:Jr,awfully:Jr,rather:Jr,nothing:Jr,something:Jr,anything:Jr,not:Jr,me:Jr},afterWords:{too:Jr,also:Jr,or:Jr}};const Mr="Gerund";var Wr={beforeTags:{Adverb:Mr,Preposition:Mr,Conjunction:Mr},afterTags:{Adverb:Mr,Possessive:Mr,Person:Mr,Pronoun:Mr,Determiner:Mr,Copula:Mr,Preposition:Mr,Conjunction:Mr,Comparative:Mr},beforeWords:{been:Mr,keep:Mr,continue:Mr,stop:Mr,am:Mr,be:Mr,me:Mr,began:Mr,start:Mr,starts:Mr,started:Mr,stops:Mr,stopped:Mr,help:Mr,helps:Mr,avoid:Mr,avoids:Mr,love:Mr,loves:Mr,loved:Mr,hate:Mr,hates:Mr,hated:Mr},afterWords:{you:Mr,me:Mr,her:Mr,him:Mr,them:Mr,their:Mr,it:Mr,this:Mr,there:Mr,on:Mr,about:Mr,for:Mr}},Kr={beforeTags:Object.assign({},Lr.beforeTags,Wr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Lr.afterTags,Wr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Lr.beforeWords,Wr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Lr.afterWords,Wr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const qr="Singular";var Ur={beforeTags:{Determiner:qr,Possessive:qr,Acronym:qr,Noun:qr,Adjective:qr,PresentTense:qr,Gerund:qr,PastTense:qr,Infinitive:qr,Date:qr},afterTags:{Value:qr,Modal:qr,Copula:qr,PresentTense:qr,PastTense:qr,Demonym:qr},beforeWords:{the:qr,with:qr,without:qr,of:qr,for:qr,any:qr,all:qr,on:qr,cut:qr,cuts:qr,save:qr,saved:qr,saves:qr,make:qr,makes:qr,made:qr,minus:qr,plus:qr,than:qr,another:qr,versus:qr,neither:qr,favorite:qr,best:qr,daily:qr,weekly:qr,linear:qr,binary:qr,mobile:qr,lexical:qr,technical:qr,computer:qr,scientific:qr,formal:qr},afterWords:{of:qr,system:qr,aid:qr,method:qr,utility:qr,tool:qr,reform:qr,therapy:qr,philosophy:qr,room:qr,authority:qr,says:qr,said:qr,wants:qr,wanted:qr}};const Rr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Zr={beforeTags:Object.assign({},Lr.beforeTags,Ur.beforeTags,Rr.beforeTags),afterTags:Object.assign({},Lr.afterTags,Ur.afterTags),beforeWords:Object.assign({},Lr.beforeWords,Ur.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Lr.afterWords,Ur.afterWords)};const Qr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},_r={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Yr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Xr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var eo={beforeTags:Object.assign({},Lr.beforeTags,Qr),afterTags:Object.assign({},Lr.afterTags,_r),beforeWords:Object.assign({},Lr.beforeWords,Yr),afterWords:Object.assign({},Lr.afterWords,Xr)};const to="Infinitive";var no={beforeTags:{Modal:to,Adverb:to,Negative:to,Plural:to},afterTags:{Determiner:to,Adverb:to,Possessive:to,Preposition:to},beforeWords:{i:to,we:to,you:to,they:to,to:to,please:to,will:to,have:to,had:to,would:to,could:to,should:to,do:to,did:to,does:to,can:to,must:to,us:to,me:to,he:to,she:to,it:to,being:to},afterWords:{the:to,me:to,you:to,him:to,her:to,them:to,it:to,a:to,an:to,up:to,down:to,by:to,out:to,off:to,under:to,when:to,all:to,to:to,because:to,although:to,before:to,how:to,otherwise:to,together:to,though:to,yet:to}};const ao={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ro={beforeTags:Object.assign({},Lr.beforeTags,no.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Lr.afterTags,no.afterTags,ao.afterTags),beforeWords:Object.assign({},Lr.beforeWords,no.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Lr.afterWords,no.afterWords,{to:void 0})};const oo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},io={},so={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},lo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var uo={beforeTags:Object.assign({},Wr.beforeTags,Ur.beforeTags,oo),afterTags:Object.assign({},Wr.afterTags,Ur.afterTags,io),beforeWords:Object.assign({},Wr.beforeWords,Ur.beforeWords,so),afterWords:Object.assign({},Wr.afterWords,Ur.afterWords,lo)},co={beforeTags:Object.assign({},no.beforeTags,Ur.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},no.afterTags,Ur.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},no.beforeWords,Ur.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},no.afterWords,Ur.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ho="Person";var go={beforeTags:{Honorific:ho,Person:ho,Preposition:ho},afterTags:{Person:ho,ProperNoun:ho,Verb:ho},ownTags:{ProperNoun:ho},beforeWords:{hi:ho,hey:ho,yo:ho,dear:ho,hello:ho},afterWords:{said:ho,says:ho,told:ho,tells:ho,feels:ho,felt:ho,seems:ho,thinks:ho,thought:ho,spends:ho,spendt:ho,plays:ho,played:ho,sing:ho,sang:ho,learn:ho,learned:ho,wants:ho,wanted:ho}};const mo="Month",po={beforeTags:{Date:mo,Value:mo},afterTags:{Date:mo,Value:mo},beforeWords:{by:mo,in:mo,on:mo,during:mo,after:mo,before:mo,between:mo,until:mo,til:mo,sometime:mo,of:mo,this:mo,next:mo,last:mo,previous:mo,following:mo},afterWords:{sometime:mo,in:mo,of:mo,until:mo,the:mo}};var fo={beforeTags:Object.assign({},go.beforeTags,po.beforeTags),afterTags:Object.assign({},go.afterTags,po.afterTags),beforeWords:Object.assign({},go.beforeWords,po.beforeWords),afterWords:Object.assign({},go.afterWords,po.afterWords)};const bo={Place:"Place"},yo={Place:"Place",Abbreviation:"Place"},vo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},wo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let ko="Unit";const Po={"Adj|Gerund":Kr,"Adj|Noun":Zr,"Adj|Past":eo,"Adj|Present":ro,"Noun|Verb":co,"Noun|Gerund":uo,"Person|Noun":{beforeTags:Object.assign({},Ur.beforeTags,go.beforeTags),afterTags:Object.assign({},Ur.afterTags,go.afterTags),beforeWords:Object.assign({},Ur.beforeWords,go.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ur.afterWords,go.afterWords)},"Person|Date":fo,"Person|Verb":{beforeTags:Object.assign({},go.beforeTags,no.beforeTags),afterTags:Object.assign({},go.afterTags,no.afterTags),beforeWords:Object.assign({},go.beforeWords,no.beforeWords),afterWords:Object.assign({},go.afterWords,no.afterWords)},"Person|Place":{beforeTags:Object.assign({},bo,go.beforeTags),afterTags:Object.assign({},yo,go.afterTags),beforeWords:Object.assign({},vo,go.beforeWords),afterWords:Object.assign({},wo,go.afterWords)},"Unit|Noun":{beforeTags:{Value:ko},afterTags:{},beforeWords:{per:ko,every:ko,each:ko,square:ko,cubic:ko,sq:ko,metric:ko},afterWords:{per:ko,squared:ko,cubed:ko,long:ko}}},Ao=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};Po["Plural|Verb"]={beforeWords:Ao(Po["Noun|Verb"].beforeWords,{}),afterWords:Ao(Po["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Ao(Po["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Ao(Po["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Eo=Po;const jo="Adjective",Io="Infinitive",Go="PresentTense",No="Singular",Do="PastTense",xo="Adverb",To="Plural",Co="Actor",Bo="Verb",Oo="Noun",zo="LastName",Vo="Modal",Fo="Participle";var $o=[null,null,{ea:No,ia:Oo,ic:jo,ly:xo,"'n":Bo,"'t":Bo},{oed:Do,ued:Do,xed:Do," so":xo,"'ll":Vo,"'re":"Copula",azy:jo,eer:Oo,end:Bo,ped:Do,ffy:jo,ify:Io,ing:"Gerund",ize:Io,ibe:Io,lar:jo,mum:jo,nes:Go,nny:jo,ous:jo,que:jo,rol:No,sis:No,ogy:No,oid:No,ian:No,zes:Go,eld:Do,ken:Fo,ven:Fo,ten:Fo,ect:Io,ict:Io,ign:Io,ful:jo,bal:jo},{amed:Do,aped:Do,ched:Do,lked:Do,rked:Do,reed:Do,nded:Do,mned:jo,cted:Do,dged:Do,ield:No,akis:zo,cede:Io,chuk:zo,czyk:zo,ects:Go,ends:Bo,enko:zo,ette:No,wner:No,fies:Go,fore:xo,gate:Io,gone:jo,ices:To,ints:To,ruct:Io,ines:To,ions:To,less:jo,llen:jo,made:jo,nsen:zo,oses:Go,ould:Vo,some:jo,sson:zo,tion:No,tage:Oo,ique:No,tive:jo,tors:Oo,vice:No,lier:No,fier:No,wned:Do,gent:No,tist:No,pist:No,rist:No,mist:No,yist:No,vist:No,lite:No,site:No,rite:No,mite:No,bite:No,mate:No,date:No,ndal:No,vent:No,uist:No,gist:No,note:No,cide:No,wide:jo,vide:Io,ract:Io,duce:Io,pose:Io,eive:Io,lyze:Io,lyse:Io,iant:jo,nary:jo},{elist:No,holic:No,phite:No,tized:Do,urned:Do,eased:Do,ances:To,bound:jo,ettes:To,fully:xo,ishes:Go,ities:To,marek:zo,nssen:zo,ology:Oo,osome:No,tment:No,ports:To,rough:jo,tches:Go,tieth:"Ordinal",tures:To,wards:xo,where:xo,archy:Oo,pathy:Oo,opoly:Oo,embly:Oo,phate:Oo,ndent:No,scent:No,onist:No,anist:No,alist:No,olist:No,icist:No,ounce:Io,iable:jo,borne:jo,gnant:jo,inant:jo,igent:jo,atory:jo,rient:No,dient:No},{auskas:zo,parent:No,cedent:No,ionary:No,cklist:No,keeper:Co,logist:Co,teenth:"Value"},{opoulos:zo,borough:"Place",sdottir:zo}];const So="Adjective",Ho="Noun",Jo="Verb";var Lo=[null,null,{},{neo:Ho,bio:Ho,"de-":Jo,"re-":Jo,"un-":Jo},{anti:Ho,auto:Ho,faux:So,hexa:Ho,kilo:Ho,mono:Ho,nano:Ho,octa:Ho,poly:Ho,semi:So,tele:Ho,"pro-":So,"mis-":Jo,"dis-":Jo,"pre-":So},{anglo:Ho,centi:Ho,ethno:Ho,ferro:Ho,grand:Ho,hepta:Ho,hydro:Ho,intro:Ho,macro:Ho,micro:Ho,milli:Ho,nitro:Ho,penta:Ho,quasi:So,radio:Ho,tetra:Ho,"omni-":So,"post-":So},{pseudo:So,"extra-":So,"hyper-":So,"inter-":So,"intra-":So,"deca-":So},{electro:Ho}];const Mo="Adjective",Wo="Infinitive",Ko="PresentTense",qo="Singular",Uo="PastTense",Ro="Adverb",Zo="Expression",Qo="Actor",_o="Verb",Yo="Noun",Xo="LastName";var ei={a:[[/.[aeiou]na$/,Yo,"tuna"],[/.[oau][wvl]ska$/,Xo],[/.[^aeiou]ica$/,qo,"harmonica"],[/^([hyj]a+)+$/,Zo,"haha"]],c:[[/.[^aeiou]ic$/,Mo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Uo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Uo,"rammed"],[/.[aeiou][sg]hed$/,Uo,"gushed"],[/.[aeiou]red$/,Uo,"hired"],[/.[aeiou]r?ried$/,Uo,"hurried"],[/[^aeiou]ard$/,qo,"steward"],[/[aeiou][^aeiou]id$/,Mo,""],[/.[vrl]id$/,Mo,"livid"],[/..led$/,Uo,"hurled"],[/.[iao]sed$/,Uo,""],[/[aeiou]n?[cs]ed$/,Uo,""],[/[aeiou][rl]?[mnf]ed$/,Uo,""],[/[aeiou][ns]?c?ked$/,Uo,"bunked"],[/[aeiou]gned$/,Uo],[/[aeiou][nl]?ged$/,Uo],[/.[tdbwxyz]ed$/,Uo],[/[^aeiou][aeiou][tvx]ed$/,Uo],[/.[cdflmnprstv]ied$/,Uo,"emptied"]],e:[[/.[lnr]ize$/,Wo,"antagonize"],[/.[^aeiou]ise$/,Wo,"antagonise"],[/.[aeiou]te$/,Wo,"bite"],[/.[^aeiou][ai]ble$/,Mo,"fixable"],[/.[^aeiou]eable$/,Mo,"maleable"],[/.[ts]ive$/,Mo,"festive"],[/[a-z]-like$/,Mo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Mo,"cornish"],[/.v[iy]ch$/,Xo,"..ovich"],[/^ug?h+$/,Zo,"ughh"],[/^uh[ -]?oh$/,Zo,"uhoh"],[/[a-z]-ish$/,Mo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Xo,"polish-male"]],k:[[/^(k){2}$/,Zo,"kkkk"]],l:[[/.[gl]ial$/,Mo,"familial"],[/.[^aeiou]ful$/,Mo,"fitful"],[/.[nrtumcd]al$/,Mo,"natal"],[/.[^aeiou][ei]al$/,Mo,"familial"]],m:[[/.[^aeiou]ium$/,qo,"magnesium"],[/[^aeiou]ism$/,qo,"schism"],[/^[hu]m+$/,Zo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Mo,"republican"],[/[^aeiou]ician$/,Qo,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Zo,"noooo"],[/^(yo)+$/,Zo,"yoo"],[/^wo{2,}[pt]?$/,Zo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,qo],[/[^i]fer$/,Wo],[/.[^aeiou][ao]pher$/,Qo],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Mo],[/[aeiou].*ist$/,Mo],[/^[a-z]et$/,_o]],s:[[/.[^aeiou]ises$/,Ko],[/.[rln]ates$/,Ko],[/.[^z]ens$/,_o],[/.[lstrn]us$/,qo],[/.[aeiou]sks$/,Ko],[/.[aeiou]kes$/,Ko],[/[aeiou][^aeiou]is$/,qo],[/[a-z]'s$/,Yo],[/^yes+$/,Zo]],v:[[/.[^aeiou][ai][kln]ov$/,Xo]],y:[[/.[cts]hy$/,Mo],[/.[st]ty$/,Mo],[/.[tnl]ary$/,Mo],[/.[oe]ry$/,qo],[/[rdntkbhs]ly$/,Ro],[/.(gg|bb|zz)ly$/,Mo],[/...lly$/,Ro],[/.[gk]y$/,Mo],[/[bszmp]{2}y$/,Mo],[/.[ai]my$/,Mo],[/[ea]{2}zy$/,Mo],[/.[^aeiou]ity$/,qo]]};const ti="Verb",ni="Noun";var ai={leftTags:[["Adjective",ni],["Possessive",ni],["Determiner",ni],["Adverb",ti],["Pronoun",ti],["Value",ni],["Ordinal",ni],["Modal",ti],["Superlative",ni],["Demonym",ni],["Honorific","Person"]],leftWords:[["i",ti],["first",ni],["it",ti],["there",ti],["not",ti],["because",ni],["if",ni],["but",ni],["who",ti],["this",ni],["his",ni],["when",ni],["you",ti],["very","Adjective"],["old",ni],["never",ti],["before",ni],["a","Singular"],["the",ni],["been",ti]],rightTags:[["Copula",ni],["PastTense",ni],["Conjunction",ni],["Modal",ni]],rightWords:[["there",ti],["me",ti],["man","Adjective"],["only",ti],["him",ti],["it",ti],["were",ni],["took",ni],["himself",ti],["went",ni],["who",ni],["jr","Person"]]},ri={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},oi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ii={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},si={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},li={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ui=/^.([0-9]+)/;var ci=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(ui);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(ui,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},di=/^([0-9]+)/,gi=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(di);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(di,"")]}(n[0],n[1])})};var mi=function(e={}){return(e=Object.assign({},e)).rules=gi(e.rules),e.rules=hi(e.rules),e.rev&&(e.rev=gi(e.rev),e.rev=hi(e.rev)),e.exceptions=gi(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},pi=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const fi=mi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),bi=mi(si),yi=mi(oi),vi=mi(ii),wi=pi(fi),ki=pi(bi),Pi=pi(yi),Ai=pi(vi),Ei=mi(ri),ji=mi(li);var Ii={fromPast:fi,fromPresent:bi,fromGerund:yi,fromParticiple:vi,toPast:wi,toPresent:ki,toGerund:Pi,toParticiple:Ai,toComparative:Ei,toSuperlative:ji,fromComparative:pi(Ei),fromSuperlative:pi(ji)},Gi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),Ni=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Di=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(xi[t].forEach(n=>e[n]=t),e),{});var Ti=xi,Ci=function(e){let t=e.substring(e.length-3);if(!0===Ti.hasOwnProperty(t))return Ti[t];let n=e.substring(e.length-2);return!0===Ti.hasOwnProperty(n)?Ti[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Bi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Oi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Ci(e)),Bi.hasOwnProperty(e))c=Bi[e];else if("Participle"===n)c=ci(l,i);else if("PastTense"===n)c=ci(l,a);else if("PresentTense"===n)c=ci(l,r);else{if("Gerund"!==n)return e;c=ci(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},zi=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ci(i,n),PresentTense:ci(i,a),Gerund:ci(i,r),FutureTense:"will "+e},u=ci(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Vi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Fi="ically",$i=new Set(["analyt"+Fi,"chem"+Fi,"class"+Fi,"clin"+Fi,"crit"+Fi,"ecolog"+Fi,"electr"+Fi,"empir"+Fi,"frant"+Fi,"grammat"+Fi,"ident"+Fi,"ideolog"+Fi,"log"+Fi,"mag"+Fi,"mathemat"+Fi,"mechan"+Fi,"med"+Fi,"method"+Fi,"method"+Fi,"mus"+Fi,"phys"+Fi,"phys"+Fi,"polit"+Fi,"pract"+Fi,"rad"+Fi,"satir"+Fi,"statist"+Fi,"techn"+Fi,"technolog"+Fi,"theoret"+Fi,"typ"+Fi,"vert"+Fi,"whims"+Fi]),Si=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Hi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ji={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Li=function(e){return e.endsWith("ly")?$i.has(e)?e.replace(/ically/,"ical"):Hi.has(e)?null:Ji.hasOwnProperty(e)?Ji[e]:Vi(e,Si)||e:null};const Mi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Wi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ki=function(e){if(Wi.hasOwnProperty(e))return Wi[e];let t=Vi(e,Mi);return t||e+"ly"};const qi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ui={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ri=new Set(["terrible","annoying"]),Zi=function(e,t){const n=t.two.models.toSuperlative;return ci(e,n)},Qi=function(e,t){const n=t.two.models.toComparative;return ci(e,n)};var _i={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Yi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===_i.hasOwnProperty(i)&&_i[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Vr,nounToSingular:Di,verbToInfinitive:Oi,getTense:Ci,verbConjugate:zi,adjToSuperlative:Zi,adjToComparative:Qi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ci(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ci(e,n)},advToAdjective:Li,adjToAdverb:Ki,adjToNoun:function(e){if(Ui.hasOwnProperty(e))return Ui[e];if(Ri.has(e))return null;let t=Vi(e,qi);return t||e+"ness"}}}},Xi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const es=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var ts=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=es(n,"Infinitive","PastTense"),Object.assign(s,l),l=es(a,"Infinitive","Verb"),Object.assign(s,l),l=es(r,"Infinitive","Gerund"),Object.assign(s,l),l=es(o,"Adjective","Superlative"),Object.assign(s,l),l=es(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let ns={two:{models:Ii}};const as={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},rs=function(e,t){const n={model:t,methods:Yi};let{lex:a,_multi:r}=Yi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},os=function(e,t,n){let a=zi(e,ns);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},is=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=as[o],"Noun|Verb"!==o&&"Person|Verb"!==o||os(r,a,!1),"Adj|Present"===o&&(os(r,a,!0),function(e,t,n){let a=Zi(e,n);t[a]=t[a]||"Superlative";let r=Qi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Oi(r,ns,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Oi(r,ns,"PastTense");a[e]||(n[e]="Infinitive")}}),t=rs(n,t)};let ss={one:{_multiCache:{},lexicon:$r},two:{irregularPlurals:Er,models:Ii,suffixPatterns:$o,prefixPatterns:Lo,endsWith:ei,neighbours:ai,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Sr,clues:Eo,uncountable:{},orgWords:Gi}};ss=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=rs(e.one.lexicon,e)).one.lexicon,e),e=is(e.two.switches,e),e=ts(e),e=Xi(e)}(ss);var ls=ss;const us=/^(under|over|mis|re|un|dis|semi)-?/;var cs=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(us.test(r.normal)){let e=r.normal.replace(us,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},hs=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const ds={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},gs=new Set(["formulas","koalas","israelis","menus"]),ms=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ps=function(e){if(!e||e.length<=3)return!1;if(gs.has(e))return!0;let t=e[e.length-1];return ds.hasOwnProperty(t)?ds[t].find(t=>e.endsWith(t)):"s"===t&&!ms.find(t=>e.endsWith(t))};const fs=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var bs=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(ps(e.normal)?hs(e,"Plural","3-plural-guess"):hs(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ci(e.normal);t&&hs(e,t,"3-verb-tense-guess")}}(a)};const ys=/^\p{Lu}[\p{Ll}'’]/u,vs=/[0-9]/,ws=["Date","Month","WeekDay","Unit"],ks=/^[IVXLCDM]{2,}$/,Ps=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,As={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Es=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===ys.test(o)&&!1===vs.test(o)?ws.find(e=>a.tags.has(e))?null:(bs(e,t,n),a.tags.has("Noun")||a.tags.clear(),hs(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ks.test(o)&&Ps.test(o)&&!As[a.normal]?(hs(a,"RomanNumeral","2-xvii"),!0):null};const js=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var Is=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=js(a.normal,n.two.suffixPatterns);if(null!==e)return hs(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=js(a.implicit,n.two.suffixPatterns),null!==e))return hs(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Gs=/['‘’‛‵′`´]/,Ns=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return hs(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Ts=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Cs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ts.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bs=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Os=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var zs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Cs(r)||Cs(o))return hs(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Bs(r)||Bs(o))return hs(n,"Year","2-tagYear-close");if(Os(e[t-2])||Os(e[t+2]))return hs(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return hs(n,"Year","2-tagYear-noun")}}}return null};const Vs=/^[A-Z]('s|,)?$/,Fs=/^[A-Z-]+$/,$s=/([A-Z]\.)+[A-Z]?,?$/,Ss=/[A-Z]{2,}('s|,)?$/,Hs=/([a-z]\.)+[a-z]\.?$/,Js={I:!0,A:!0};var Ls=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Fs.test(n)||n.length>5||Js.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==$s.test(n)&&!0!==Hs.test(n)&&!0!==Vs.test(n)&&!0!==Ss.test(n))}(a,n)?(a.tags.clear(),hs(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Js.hasOwnProperty(a.text)&&Vs.test(a.text)?(a.tags.clear(),hs(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(hs(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Fs.test(a.text)&&a.text.length<=6?(hs(a,"Acronym","3-titlecase-acronym"),!0):null};const Ms=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ws=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ks=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ms(e[t-1],r),l=l||Ms(e[t+1],o),l=l||Ws(e[t-1],a),l=l||Ws(e[t+1],i),l)return hs(s,l,"3-[neighbour]"),bs(e,t,n),e[t].confidence=.2,!0}return null};const qs=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Us=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&qs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&qs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Rs=function(e,t,n){0===e[t].tags.size&&(hs(e[t],"Noun","3-[fallback]"),bs(e,t,n),e[t].confidence=.1)};const Zs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Qs=(e,t,n)=>0!==t||e[1]?null:n;var _s={"Adj|Gerund":(e,t)=>Zs(e,t),"Adj|Noun":(e,t)=>Zs(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zs(e,t),"Adj|Present":(e,t)=>Zs(e,t),"Noun|Gerund":(e,t)=>Zs(e,t),"Noun|Verb":(e,t)=>Zs(e,t)||Qs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zs(e,t)||Qs(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zs(e,t),"Person|Verb":(e,t)=>0!==t&&Zs(e,t)};const Ys="undefined"!=typeof process&&process.env?process.env:self.env||{},Xs=/^(under|over|mis|re|un|dis|semi)-?/,el=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Ys.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},tl=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Ys.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a},nl={tagSwitch:cs,checkSuffix:Is,checkRegex:Ds,checkCase:Es,checkPrefix:xs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(hs(o,"Verb","3-[prefix]"),hs(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(hs(o,"Adjective","3-[prefix]"),hs(o,"Prefix","3-[prefix]")))},checkYear:zs},al={checkAcronym:Ls,neighbours:Ks,orgWords:Us,nounFallback:Rs,switches:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Xs.test(l)&&!o[l]&&(l=l.replace(Xs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=el(e[t+1],n.afterWords);return o=o||el(e[t-1],n.beforeWords),o=o||tl(e[t-1],n.beforeTags,r),o=o||tl(e[t+1],n.afterTags,r),o}(e,t,i[o],a);_s[o]&&(u=_s[o](e,t)||u),u?(r([s],u,n,null,`3-[variable] (${o})`),bs(e,t,a)):Ys.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},rl=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},sl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ll={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const vl=/'/;var wl=function(e,t){let n=e[t].normal.split(vl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const kl=/'/;var Pl=function(e,t){let n=e[t].normal.split(kl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},Al=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const El={that:!0,there:!0,let:!0,here:!0,everywhere:!0},jl={in:!0,by:!0,for:!0};var Il=(e,t)=>{let n=e[t];if(El.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===jl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const Gl=/'/,Nl=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},Dl={d:(e,t)=>Pl(e,t),t:(e,t)=>Al(e,t),s:(e,t,n)=>Il(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):wl(e,t)},xl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Tl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Gl.test(a[o].normal)&&([,i]=a[o].normal.split(Gl));let s=null;Dl.hasOwnProperty(i)&&(s=Dl[i](a,o,t)),s&&(s=xl(s,e),yl(n,[r,o],s),Nl(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=bl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=fl},hooks:["contractionTwo"]};const Cl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Bl=["i","we","they"];let Ol=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Cl+" #Person",tag:"Person",reason:"randy-smith"},{match:Cl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Cl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Bl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Bl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Bl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),zl=null;var Vl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;zl=zl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(zl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Ol}},hooks:["postTagger"]},Fl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter((e,t)=>n.some(e=>a[t].has(e)))},$l={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Fl(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}},Sl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Hl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Sl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this},Jl={api:function(e){e.prototype.swap=Hl}};return m.plugin(gl),m.plugin(Tl),m.plugin(Vl),m.plugin($l),m.plugin(Jl),m},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs index 45a3c8855..a18914777 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1,2 +1,2 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.3.1";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1;var a=P;a=parseInt(a,10),t=t>46655?46655:t,n=n>1294?1294:n;let r=A((a=a>46655?46655:a).toString(36));r+=A(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const j=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},I=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:I(e)?I(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(j(t.update([u]).firstTerm()),k(h,u,d,a)):(j(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(a.insertAfter(e),r.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this};var C=T;var O=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const B={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;if(e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let r=n.fullPointer,o=a.fullPointer.reverse(),i=O(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};B.delete=B.remove;var z=B;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V;var $={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),L=new Set(["alpha","alphabetical"]);var J={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),L.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const M=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=M(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=M(this.document,e);return this.document=t,this.all()}var r;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,J,W,K);var U={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Q=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const ge=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute("lexicon"),r.world.compute.preTagger&&r.compute("preTagger")},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ge.test(a[s].normal)&&([l,u]=a[s].normal.split(ge));let c=ve(o,a[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](a,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](a,s)),c?(c=ye(c,e),Z(n,[i,s],c),pe(n[i],e,s,c.length)):me.test(a[s].normal)?(c=ue(a,s),c&&(c=ye(c,e),Z(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),pe(n[i],e,s,c.length))):(c=de(a,s),c&&(c=ye(c,e),Z(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Pe.test(l)){let e=l.replace(Pe,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var je={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=a.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]};var Ie=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ne=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Te=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};var Ce={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ie(e,this.world));var a;let r=De(this,n,t);return r=r.settle(),r}},lib:{compile:function(e){const t=Ie(e,this.world());return Te(t)}}};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Be=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Oe(n,t),Object.keys(a).forEach(e=>{a[e]=Oe(a[e],t)}),{ptrs:n,byGroup:a}},ze=e=>"[object Object]"===Object.prototype.toString.call(e),Ve=e=>e&&ze(e)&&!0===e.isView,Fe=e=>e&&ze(e)&&!0===e.isNet,$e=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var Se={matchOne:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e).eq(0);if(Fe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.intersection(e);if(Fe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=$e(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=Be(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Ve(e)){return e.fullPointer.length>0}if(Fe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=$e(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Ve(e))return this.filter(t=>t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=$e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Ve(e))return this.filter(t=>!t.intersection(e).found);if(Fe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=$e(e,n,this.world);let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var He={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},Je=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},Me=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},We={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Je(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Me(e,this)),this.update(o)}};We.split=We.splitAfter;var Ke=We;const qe=Object.assign({},Se,He,Ke);qe.lookBehind=qe.before,qe.lookBefore=qe.before,qe.lookAhead=qe.after,qe.lookAfter=qe.after,qe.notIf=qe.ifNo;var Ue=function(e){Object.assign(e.prototype,qe)};const Re=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Ze=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Qe=/ /g,_e=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Ye=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var Xe=function(e){let t=e.split(Re),n=[];t.forEach(e=>{_e(e)?n.push(e):n=n.concat(e.split(Ze))}),n=Ye(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||_e(e)?a.push(e):a=a.concat(e.split(Qe))}),a=Ye(a),a};const et=/\{([0-9]+)?(, *[0-9]*)?\}/,tt=/&&/,nt=new RegExp(/^<\s*(\S+)\s*>/),at=e=>e.charAt(0).toUpperCase()+e.substring(1),rt=e=>e.charAt(e.length-1),ot=e=>e.charAt(0),it=e=>e.substring(1),st=e=>e.substring(0,e.length-1),lt=function(e){return e=it(e),e=st(e)},ut=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===rt(e)&&(n.end=!0,e=st(e)),"^"===ot(e)&&(n.start=!0,e=it(e)),("["===ot(e)||"]"===rt(e))&&(n.group=null,"["===ot(e)&&(n.groupStart=!0),"]"===rt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===ot(e))){const t=nt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===rt(e)&&(n.greedy=!0,e=st(e)),"*"!==e&&"*"===rt(e)&&"\\*"!==e&&(n.greedy=!0,e=st(e)),"?"===rt(e)&&(n.optional=!0,e=st(e)),"!"===ot(e)&&(n.negative=!0,e=it(e)),"~"===ot(e)&&"~"===rt(e)&&e.length>2&&(e=lt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===ot(e)&&")"===rt(e)){tt.test(e)?(n.choices=e.split(tt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=it(n.choices[0]);let a=n.choices.length-1;n.choices[a]=st(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ut(e,t))),e=""}if("/"===ot(e)&&"/"===rt(e))return e=lt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===ot(e)&&"}"===rt(e)){if(e=lt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===ot(e)&&">"===rt(e))return e=lt(e),n.chunk=at(e),n.greedy=!0,n;if("%"===ot(e)&&"%"===rt(e))return e=lt(e),n.switch=e,n}return!0===et.test(e)&&(e=e.replace(et,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===ot(e)?(n.tag=it(e),n.tag=at(n.tag),n):"@"===ot(e)?(n.method=it(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ct=ut;const ht=/[a-z0-9][-–—][a-z]/i;var dt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&ht.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e};var gt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return a.push(n(e.root,t.model)),a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var mt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var pt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=Xe(e);return a=a.map(e=>ct(e,t)),a=dt(a,n),a=gt(a,n),a=mt(a),a};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var bt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),Et=(e,t)=>-1!==e.pre.indexOf(t),jt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||Et(e,"..")||Et(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>Pt.test(e.post)||Pt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};jt.hasQuotation=jt.hasQuote;var It=jt;let Nt=function(){};Nt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(vt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof It[t.method]&&!0===It[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Nt(e,t,n,a)):t.choices.some(t=>Nt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var Gt=Nt;const Dt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){xt(e,e.t).length=a-e.t}return e.t=a,!0};const Ct=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Gt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Gt(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){xt(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var zt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==Gt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null};var Vt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Gt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Gt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Ft=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var $t=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var St=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Vt(e),a.implicit&&e.terms[e.t+1]&&$t(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ft(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=xt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var Ht=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Dt(e,r))if(!0!==Gt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!zt(r))return null}if(!0!==e.optional)return null}else{if(!St(r))return null}else{if(!St(r))return null}else{if(!St(r))return null}else{if(!Bt(r))return null}else{if(!Ot(r))return null}else{if(!Tt(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}};var Lt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Jt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Mt=function(e,t,n){let a=Ht(e,t,0,e.length);return a?(a=Jt(a,n),a):null};var Wt={api:Ue,methods:{one:{termMethods:It,parseMatch:pt,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Mt(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const Kt=/^\../,qt=/^#./,Ut=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Kt.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(Qt,""),Yt.test(r)&&(r=" "),r=r.replace(_t,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Qt,""),r="-"===r?" ":r.replace(Zt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&Xt.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;let an=[],rn=0;for(;rn<64;)an[rn]=0|4294967296*Math.sin(++rn%Math.PI);function on(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(rn=i=0;rn>4]+an[i]+~~o[rn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const sn={text:!0,terms:!0};let ln={case:"none",unicode:"some",form:"machine",punctuation:"some"};const un=function(e,t){return Object.assign({},e,t)},cn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,un(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,un(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,ln,!1),root:e=>en(e,un(ln,{form:"root"}),!1),hash:e=>on(en(e,{keepPunct:!0},!1)),offset:e=>{let t=cn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};cn.sentences=cn.sentence,cn.clean=cn.normal,cn.reduced=cn.root;const hn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},sn,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&cn[o]&&(r[o]=cn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};hn.data=hn.json;var dn=hn;var gn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var mn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var pn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(mn.blue("\n ──────")),t.forEach(e=>{console.log(mn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=mn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=mn.blue(" │ ")+mn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return mn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var fn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(mn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(mn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(mn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(mn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${mn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var yn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var kn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},jn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var In=function(e,t){let n=jn(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a};var Nn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:jn,splitAll:In}}};var Gn=function(e,t){let n=e.concat(t),a=jn(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>En(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var xn=function(e,t){let n=jn(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>En(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Cn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},On={union:function(e){e=Tn(e,this);let t=Gn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)}};On.and=On.union,On.intersection=function(e){e=Tn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.not=function(e){e=Tn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.difference=On.not,On.complement=function(){let e=this.all(),t=Dn(e.fullPointer,this.fullPointer);return t=Cn(t,this.document),this.toView(t)},On.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Gn(e,[t])}),e=Cn(e,this.document),this.update(e)};var Bn={methods:Nn,api:function(e){Object.assign(e.prototype,On)}};const zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Vn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Fn=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})};var $n=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>a.has(e)).length>=e.minWant})})};var Sn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r};var Hn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Vn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=Fn(r,t.hooks);return o=$n(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Sn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Hn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Jn=/ /,Mn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Wn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Jn.test(t))!function(e,t,n,a){let r=t.split(Jn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Wn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nKn(e,t,n,a))};var qn=Kn;var Un=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Rn({id:e})),t}return[Rn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Yn=e=>"[object Array]"===Object.prototype.toString.call(e),Xn=e=>(e=e||"").trim(),ea=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Zn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Qn(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Rn({});return e.forEach(e=>{if((e=Rn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(_n(t=e).forEach(Rn),t);var t},ta=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return _n(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},na=function(e){let t=_n(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},aa={text:ta,txt:ta,array:na,flat:na},ra=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(ta(e,!0)),null):aa.hasOwnProperty(t)?aa[t](e):e},oa=e=>{_n(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},ia=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Xn(e),!ia.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Rn({});return new g$1(t)}add(e,t={}){if(Yn(e))return e.forEach(e=>this.add(Xn(e),t)),this;e=Xn(e);let n=Rn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=Xn(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return _n(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=_n(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return _n(this.json)}fillDown(){var e;return e=this.json,_n(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Yn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){oa(this.json);let e=_n(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return oa(this.json),ra(this.json,e)}debug(){return oa(this.json),ra(this.json,"debug"),this}}const sa=function(e){let t=ea(e);return new g$1(t)};sa.prototype.plugin=function(e){e(this)};var la={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ua=function(e){if(la.hasOwnProperty(e.id))return la[e.id];if(la.hasOwnProperty(e.is))return la[e.is];let t=e._cache.parents.find(e=>la[e]);return la[t]};var ca=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ua(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const ha=function(e){return e?"string"==typeof e?[e]:e:[]};var da=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=ha(e[t].children),e[t].not=ha(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var ga={one:{setTag:qn,unTag:Un,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=da(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return sa(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ca(n)}}};const ma=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var pa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),ma(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return ma(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}};var fa=function(e){Object.assign(e.prototype,pa)};var ba={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const va=new Set(["Auxiliary","Possessive"]);var ya={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(va.has(e)||!t.hasOwnProperty(n))return 1;if(va.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ga,api:fa,lib:ba};const wa=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,ka=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Pa=function(e){let t=[],n=e.split(ka);for(let e=0;e0&&(a.push(t),r[e]="")}if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Ha=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,La=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Ja=/['’]/,Ma=/^[a-z]\.([a-z]\.)+/i,Wa=/^[-+.][0-9]/,Ka=/^'[0-9]{2}/;var qa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ha,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Wa.test(e)?"'"===n&&Ka.test(e)?(n="",t):"":(n="",t)))).replace(La,r=>(a=r,Ja.test(r)&&/[sn]['’]$/.test(t)&&!1===Ja.test(n)?(a=a.replace(Ja,""),"'"):!0===Ma.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ua=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ra=/([A-Z]\.)+[A-Z]?,?$/,Za=/^[A-Z]\.,?$/,Qa=/[A-Z]{2,}('s|,)?$/,_a=/([a-z]\.)+[a-z]\.?$/;var Ya=function(e){return function(e){return!0===Ra.test(e)||!0===_a.test(e)||!0===Za.test(e)||!0===Qa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ua(a),a=n(a,t),a=Ya(a),e.normal=a};var er={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:xa,splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split($a);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=za(n),n=Oa(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=qa(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",a).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Xa(e,t)}),n})}}}};var tr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let nr={},ar={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{nr[t]=!0,ar[t]="Abbreviation",void 0!==e[1]&&(ar[t]=[ar[t],e[1]])})});var rr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let or={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ir={};Object.keys(or).forEach((function(e){or[e].split("").forEach((function(t){ir[t]=e}))}));const sr=/\//,lr=/[a-z]\.[a-z]/i,ur=/[0-9]/;var cr=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),sr.test(n)&&!lr.test(n)&&!ur.test(n)){let t=n.split(sr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const hr=/^\p{Letter}+-\p{Letter}+$/u;var dr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),hr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var gr=function(e){let t=0,n=0,a=e.document;for(let e=0;emr(e,cr),machine:e=>mr(e,dr),normal:e=>mr(e,Xa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const vr={safe:!0,min:3};var yr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=fr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},vr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=br(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(An),m.extend(Wt),m.extend(Bn),m.extend(ya),m.plugin(we),m.extend(pr),m.plugin(f),m.extend(Ce),m.extend(yr),m.extend(je),m.extend(Ln);var wr={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},kr={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;a7Jb6Uc5Td58e50f4Cg42h3Ui3Oj3Mk3Kl3Am31n2Xo2Tp1Zques7Lr1Bs05tRuPvKwAy9z8;ip,o6C;awn,e1Uie4S;aFeaEhCiAo8re7L;nd0r8;k,ry;mp,n8pe,re,sh,tne83;!d,g;e6Gi8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra82;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6X;cuum,l38;p8sh0;da4gra4Y;aJeIhrHiGoFrBu9wi8y4M;n,st;n8rn;e,n61;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5X;ll,ne,r3Qss,t75u2;ck,e,me,p,re;e1Low,u7;ar,e,st;g,l8rg61s4;k,ly;a0Cc07e04hZiXkVlTmSnRou6BpNtDu9w8;ear,it2;b1Wit,m,pp9r8spe5;ge,pri1vey;l8o5A;e57y;aFeEiDoBr9u8y6;dy,ff,mb6;a6Be8i4E;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Jons6Lr8y;ay,e10ink6u3;n,r6Hte;n,rk;ee1Dow;e0Di6o41;eep,i8;ce,p,t;ateboa5Yi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i31;pe,re;a9ed,n8rv14t;se,t1W;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0H;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s1A;as5DcMdo,el,fKgJje5lImGnFo0TpDque7sAturn,v8wa5B;e8i1H;al,r1;er5Io9t,u8;lt,me;l5Grt;air,ea8ly,o3X;l,t;dezvo24t;a8edy;ke,rk;ea1i3D;a4Zist0r4C;act5Dorm,u8;nd,se;a8o4Wru4P;ll;ck,i1ke,l46n8tT;ge,k;aYeVhTiQlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3J;be,ceAdu3gr8je5mi1te7;am8e5D;!me;ed,ss;ce,de;s8y;er4Ts;iAl8ol,p,re,s2Qw0;i8l;ce,sh;nt,s4H;aAe9u8;g,n3U;ad;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Tm3W;!l;cka3Ii9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2R;d0ie4R;ze;je5;a3KeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Snit43p,ve;lk,n2Wrr42x;asu10n3Nr8ss;ge,it;il,n9p,rk2Xs8t2;h,k;da4oeuv0W;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m37nCst;a9c0Bv8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o23;e2Bi8no3B;ck,ll,ss;am,o15u8;d2Li3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aUeQiLlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuN;c9g,ol,r8;ce,e1Mm;us;aAe0Iip,o8y;at,od,w8;!er;g,re,sh,vo0X;eBgAl9n8re,sh,t,x;an3i0D;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo20;cho,nEsCx8ye;cAerci1hib1Jp8tra5;eri8o0H;en3me2I;el,han14;ca8tima4;pe;count0d,gine0vy;aQeKiEoDr9u8ye;b,mp,pli23;aAe9i8;ft,nk,ve;am,ss;ft,in;cu03d0Uubt;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:58;1:4H;2:57;3:4U;4:4S;5:4N;6:4R;7:51;8:4I;a4Rb46c39d2We2Pf2Fg24h1Sin1Pjel3k1Nl1Km1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Bom2B;f1i4Vt0Ey9;! arou4E;arn4FeAo9;cabu07l52;gKr9;di6t1J;nc34p2RrAs 9;do3Rs55;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2In5rntJto16;agedy,ib9o44;e,u2O;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3Po1ArAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40meo15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a07b04cXdWexVfRgPheNinYjoule0BkKlHmBnan08oAp7quart0Bsq ft,t5volts,w4y2ze3°1µ0;g,s;c,f,n;dVears old,o0;ttR;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Pr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ar=Pr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Er=function(e){if(void 0!==Ar[e])return Ar[e];let t=0,n=1,a=36,r=1;for(;n=0;n--,r*=36){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var jr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=Nr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Gr(kr[e]);Cr.test(e)?Object.keys(t).forEach(t=>{if(Br[t]=e,"Noun|Verb"===e){let e=Tr(t,zr);Br[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Or[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Or[e]="Emoticon"),delete Or[""],delete Or.null,delete Or[" "];const Vr="Adjective";var Fr={beforeTags:{Determiner:Vr,Possessive:Vr},afterTags:{Adjective:Vr},beforeWords:{seem:Vr,seemed:Vr,seems:Vr,feel:Vr,feels:Vr,felt:Vr,appear:Vr,appears:Vr,appeared:Vr,also:Vr,over:Vr,under:Vr,too:Vr,it:Vr,but:Vr,still:Vr,really:Vr,quite:Vr,well:Vr,very:Vr,deeply:Vr,profoundly:Vr,extremely:Vr,so:Vr,badly:Vr,mostly:Vr,totally:Vr,awfully:Vr,rather:Vr,nothing:Vr,something:Vr,anything:Vr},afterWords:{too:Vr,also:Vr,or:Vr}};const $r="Gerund";var Sr={beforeTags:{Adverb:$r,Preposition:$r,Conjunction:$r},afterTags:{Adverb:$r,Possessive:$r,Person:$r,Pronoun:$r,Determiner:$r,Copula:$r,Preposition:$r,Conjunction:$r,Comparative:$r},beforeWords:{been:$r,keep:$r,continue:$r,stop:$r,am:$r,be:$r,me:$r,began:$r,start:$r,starts:$r,started:$r,stops:$r,stopped:$r,help:$r,helps:$r,avoid:$r,avoids:$r,love:$r,loves:$r,loved:$r,hate:$r,hates:$r,hated:$r},afterWords:{you:$r,me:$r,her:$r,him:$r,them:$r,their:$r,it:$r,this:$r,there:$r,on:$r,about:$r,for:$r}};var Hr={beforeTags:Object.assign({},Fr.beforeTags,Sr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Fr.afterTags,Sr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Fr.beforeWords,Sr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Fr.afterWords,Sr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lr="Singular";var Jr={beforeTags:{Determiner:Lr,Possessive:Lr,Acronym:Lr,Noun:Lr,Adjective:Lr,PresentTense:Lr,Gerund:Lr,PastTense:Lr,Infinitive:Lr,Date:Lr},afterTags:{Value:Lr,Modal:Lr,Copula:Lr,PresentTense:Lr,PastTense:Lr,Demonym:Lr},beforeWords:{the:Lr,with:Lr,without:Lr,of:Lr,for:Lr,any:Lr,all:Lr,on:Lr,cut:Lr,cuts:Lr,save:Lr,saved:Lr,saves:Lr,make:Lr,makes:Lr,made:Lr,minus:Lr,plus:Lr,than:Lr,another:Lr,versus:Lr,neither:Lr,favorite:Lr,best:Lr,daily:Lr,weekly:Lr,linear:Lr,binary:Lr,mobile:Lr,lexical:Lr,technical:Lr,computer:Lr,scientific:Lr,formal:Lr},afterWords:{of:Lr,system:Lr,aid:Lr,method:Lr,utility:Lr,tool:Lr,reform:Lr,therapy:Lr,philosophy:Lr,room:Lr,authority:Lr,says:Lr,said:Lr,wants:Lr,wanted:Lr}};const Mr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Wr={beforeTags:Object.assign({},Fr.beforeTags,Jr.beforeTags,Mr.beforeTags),afterTags:Object.assign({},Fr.afterTags,Jr.afterTags),beforeWords:Object.assign({},Fr.beforeWords,Jr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fr.afterWords,Jr.afterWords)};const Kr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},qr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ur={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Rr={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zr={beforeTags:Object.assign({},Fr.beforeTags,Kr),afterTags:Object.assign({},Fr.afterTags,qr),beforeWords:Object.assign({},Fr.beforeWords,Ur),afterWords:Object.assign({},Fr.afterWords,Rr)};const Qr="Infinitive";var _r={beforeTags:{Modal:Qr,Adverb:Qr,Negative:Qr,Plural:Qr},afterTags:{Determiner:Qr,Adverb:Qr,Possessive:Qr,Preposition:Qr},beforeWords:{i:Qr,we:Qr,you:Qr,they:Qr,to:Qr,please:Qr,will:Qr,have:Qr,had:Qr,would:Qr,could:Qr,should:Qr,do:Qr,did:Qr,does:Qr,can:Qr,must:Qr,us:Qr,me:Qr,he:Qr,she:Qr,it:Qr,being:Qr},afterWords:{the:Qr,me:Qr,you:Qr,him:Qr,her:Qr,them:Qr,it:Qr,a:Qr,an:Qr,up:Qr,down:Qr,by:Qr,out:Qr,off:Qr,under:Qr,when:Qr,all:Qr,to:Qr,because:Qr,although:Qr,before:Qr,how:Qr,otherwise:Qr,together:Qr,though:Qr,yet:Qr}};const Yr={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xr={beforeTags:Object.assign({},Fr.beforeTags,_r.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Fr.afterTags,_r.afterTags,Yr.afterTags),beforeWords:Object.assign({},Fr.beforeWords,_r.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Fr.afterWords,_r.afterWords,{to:void 0})};const eo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},to={},no={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ro={beforeTags:Object.assign({},Sr.beforeTags,Jr.beforeTags,eo),afterTags:Object.assign({},Sr.afterTags,Jr.afterTags,to),beforeWords:Object.assign({},Sr.beforeWords,Jr.beforeWords,no),afterWords:Object.assign({},Sr.afterWords,Jr.afterWords,ao)};var oo={beforeTags:Object.assign({},_r.beforeTags,Jr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},_r.afterTags,Jr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},_r.beforeWords,Jr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},_r.afterWords,Jr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const io="Person";var so={beforeTags:{Honorific:io,Person:io,Preposition:io},afterTags:{Person:io,ProperNoun:io,Verb:io},ownTags:{ProperNoun:io},beforeWords:{hi:io,hey:io,yo:io,dear:io,hello:io},afterWords:{said:io,says:io,told:io,tells:io,feels:io,felt:io,seems:io,thinks:io,thought:io,spends:io,spendt:io,plays:io,played:io,sing:io,sang:io,learn:io,learned:io,wants:io,wanted:io}};const lo="Month",uo={beforeTags:{Date:lo,Value:lo},afterTags:{Date:lo,Value:lo},beforeWords:{by:lo,in:lo,on:lo,during:lo,after:lo,before:lo,between:lo,until:lo,til:lo,sometime:lo,of:lo,this:lo,next:lo,last:lo,previous:lo,following:lo},afterWords:{sometime:lo,in:lo,of:lo,until:lo,the:lo}};var co={beforeTags:Object.assign({},so.beforeTags,uo.beforeTags),afterTags:Object.assign({},so.afterTags,uo.afterTags),beforeWords:Object.assign({},so.beforeWords,uo.beforeWords),afterWords:Object.assign({},so.afterWords,uo.afterWords)};const ho={Place:"Place"},go={Place:"Place",Abbreviation:"Place"},mo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},po={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fo="Unit";const bo={"Adj|Gerund":Hr,"Adj|Noun":Wr,"Adj|Past":Zr,"Adj|Present":Xr,"Noun|Verb":oo,"Noun|Gerund":ro,"Person|Noun":{beforeTags:Object.assign({},Jr.beforeTags,so.beforeTags),afterTags:Object.assign({},Jr.afterTags,so.afterTags),beforeWords:Object.assign({},Jr.beforeWords,so.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jr.afterWords,so.afterWords)},"Person|Date":co,"Person|Verb":{beforeTags:Object.assign({},so.beforeTags,_r.beforeTags),afterTags:Object.assign({},so.afterTags,_r.afterTags),beforeWords:Object.assign({},so.beforeWords,_r.beforeWords),afterWords:Object.assign({},so.afterWords,_r.afterWords)},"Person|Place":{beforeTags:Object.assign({},ho,so.beforeTags),afterTags:Object.assign({},go,so.afterTags),beforeWords:Object.assign({},mo,so.beforeWords),afterWords:Object.assign({},po,so.afterWords)},"Unit|Noun":{beforeTags:{Value:fo},afterTags:{},beforeWords:{per:fo,every:fo,each:fo,square:fo,cubic:fo,sq:fo,metric:fo},afterWords:{per:fo,squared:fo,cubed:fo,long:fo}}},vo=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};bo["Plural|Verb"]={beforeWords:vo(bo["Noun|Verb"].beforeWords,{}),afterWords:vo(bo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:vo(bo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vo(bo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yo=bo;const wo="Adjective",ko="Infinitive",Po="PresentTense",Ao="Singular",Eo="PastTense",jo="Adverb",Io="Plural",No="Verb",Go="LastName",Do="Participle";var xo=[null,null,{ea:Ao,ia:"Noun",ic:wo,ly:jo,"'n":No,"'t":No},{oed:Eo,ued:Eo,xed:Eo," so":jo,"'ll":"Modal","'re":"Copula",azy:wo,eer:"Noun",end:No,ped:Eo,ffy:wo,ify:ko,ing:"Gerund",ize:ko,ibe:ko,lar:wo,mum:wo,nes:Po,nny:wo,ous:wo,que:wo,rol:Ao,sis:Ao,ogy:Ao,oid:Ao,ian:Ao,zes:Po,eld:Eo,ken:Do,ven:Do,ten:Do,ect:ko,ict:ko,ign:ko,ful:wo,bal:wo},{amed:Eo,aped:Eo,ched:Eo,lked:Eo,rked:Eo,reed:Eo,nded:Eo,mned:wo,cted:Eo,dged:Eo,ield:Ao,akis:Go,cede:ko,chuk:Go,czyk:Go,ects:Po,ends:No,enko:Go,ette:Ao,wner:Ao,fies:Po,fore:jo,gate:ko,gone:wo,ices:Io,ints:Io,ruct:ko,ines:Io,ions:Io,less:wo,llen:wo,made:wo,nsen:Go,oses:Po,ould:"Modal",some:wo,sson:Go,tion:Ao,tage:"Noun",ique:Ao,tive:wo,tors:"Noun",vice:Ao,lier:Ao,fier:Ao,wned:Eo,gent:Ao,tist:Ao,pist:Ao,rist:Ao,mist:Ao,yist:Ao,vist:Ao,lite:Ao,site:Ao,rite:Ao,mite:Ao,bite:Ao,mate:Ao,date:Ao,ndal:Ao,vent:Ao,uist:Ao,gist:Ao,note:Ao,cide:Ao,wide:wo,vide:ko,ract:ko,duce:ko,pose:ko,eive:ko,lyze:ko,lyse:ko,iant:wo,nary:wo},{elist:Ao,holic:Ao,phite:Ao,tized:Eo,urned:Eo,eased:Eo,ances:Io,bound:wo,ettes:Io,fully:jo,ishes:Po,ities:Io,marek:Go,nssen:Go,ology:"Noun",osome:Ao,tment:Ao,ports:Io,rough:wo,tches:Po,tieth:"Ordinal",tures:Io,wards:jo,where:jo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ao,scent:Ao,onist:Ao,anist:Ao,alist:Ao,olist:Ao,icist:Ao,ounce:ko,iable:wo,borne:wo,gnant:wo,inant:wo,igent:wo,atory:wo,rient:Ao,dient:Ao},{auskas:Go,parent:Ao,cedent:Ao,ionary:Ao,cklist:Ao,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Go,borough:"Place",sdottir:Go}];const To="Adjective";var Co=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:To,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:To,tele:"Noun","pro-":To,"mis-":"Verb","dis-":"Verb","pre-":To},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:To,radio:"Noun",tetra:"Noun","omni-":To,"post-":To},{pseudo:To,"extra-":To,"hyper-":To,"inter-":To,"intra-":To,"deca-":To},{electro:"Noun"}];const Oo="Adjective",Bo="Infinitive",zo="PresentTense",Vo="Singular",Fo="PastTense",$o="Expression",So="LastName";var Ho={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,So],[/.[^aeiou]ica$/,Vo,"harmonica"],[/^([hyj]a+)+$/,$o,"haha"]],c:[[/.[^aeiou]ic$/,Oo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fo,"rammed"],[/.[aeiou][sg]hed$/,Fo,"gushed"],[/.[aeiou]red$/,Fo,"hired"],[/.[aeiou]r?ried$/,Fo,"hurried"],[/[^aeiou]ard$/,Vo,"steward"],[/[aeiou][^aeiou]id$/,Oo,""],[/.[vrl]id$/,Oo,"livid"],[/..led$/,Fo,"hurled"],[/.[iao]sed$/,Fo,""],[/[aeiou]n?[cs]ed$/,Fo,""],[/[aeiou][rl]?[mnf]ed$/,Fo,""],[/[aeiou][ns]?c?ked$/,Fo,"bunked"],[/[aeiou]gned$/,Fo],[/[aeiou][nl]?ged$/,Fo],[/.[tdbwxyz]ed$/,Fo],[/[^aeiou][aeiou][tvx]ed$/,Fo],[/.[cdflmnprstv]ied$/,Fo,"emptied"]],e:[[/.[lnr]ize$/,Bo,"antagonize"],[/.[^aeiou]ise$/,Bo,"antagonise"],[/.[aeiou]te$/,Bo,"bite"],[/.[^aeiou][ai]ble$/,Oo,"fixable"],[/.[^aeiou]eable$/,Oo,"maleable"],[/.[ts]ive$/,Oo,"festive"],[/[a-z]-like$/,Oo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oo,"cornish"],[/.v[iy]ch$/,So,"..ovich"],[/^ug?h+$/,$o,"ughh"],[/^uh[ -]?oh$/,$o,"uhoh"],[/[a-z]-ish$/,Oo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,So,"polish-male"]],k:[[/^(k){2}$/,$o,"kkkk"]],l:[[/.[gl]ial$/,Oo,"familial"],[/.[^aeiou]ful$/,Oo,"fitful"],[/.[nrtumcd]al$/,Oo,"natal"],[/.[^aeiou][ei]al$/,Oo,"familial"]],m:[[/.[^aeiou]ium$/,Vo,"magnesium"],[/[^aeiou]ism$/,Vo,"schism"],[/^[hu]m+$/,$o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,$o,"noooo"],[/^(yo)+$/,$o,"yoo"],[/^wo{2,}[pt]?$/,$o,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vo],[/[^i]fer$/,Bo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oo],[/[aeiou].*ist$/,Oo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zo],[/.[rln]ates$/,zo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vo],[/.[aeiou]sks$/,zo],[/.[aeiou]kes$/,zo],[/[aeiou][^aeiou]is$/,Vo],[/[a-z]'s$/,"Noun"],[/^yes+$/,$o]],v:[[/.[^aeiou][ai][kln]ov$/,So]],y:[[/.[cts]hy$/,Oo],[/.[st]ty$/,Oo],[/.[tnl]ary$/,Oo],[/.[oe]ry$/,Vo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oo],[/...lly$/,"Adverb"],[/.[gk]y$/,Oo],[/[bszmp]{2}y$/,Oo],[/.[ai]my$/,Oo],[/[ea]{2}zy$/,Oo],[/.[^aeiou]ity$/,Vo]]};const Lo="Verb",Jo="Noun";var Mo={leftTags:[["Adjective",Jo],["Possessive",Jo],["Determiner",Jo],["Adverb",Lo],["Pronoun",Lo],["Value",Jo],["Ordinal",Jo],["Modal",Lo],["Superlative",Jo],["Demonym",Jo],["Honorific","Person"]],leftWords:[["i",Lo],["first",Jo],["it",Lo],["there",Lo],["not",Lo],["because",Jo],["if",Jo],["but",Jo],["who",Lo],["this",Jo],["his",Jo],["when",Jo],["you",Lo],["very","Adjective"],["old",Jo],["never",Lo],["before",Jo],["a","Singular"],["the",Jo],["been",Lo]],rightTags:[["Copula",Jo],["PastTense",Jo],["Conjunction",Jo],["Modal",Jo]],rightWords:[["there",Lo],["me",Lo],["man","Adjective"],["only",Lo],["him",Lo],["it",Lo],["were",Jo],["took",Jo],["himself",Lo],["went",Jo],["who",Jo],["jr","Person"]]},Wo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ko={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},qo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Uo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ro={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Zo=/^.([0-9]+)/;var Qo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(Zo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Zo,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},Yo=/^([0-9]+)/,Xo=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Yo);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(Yo,"")]}(n[0],n[1])})};var ei=function(e={}){return(e=Object.assign({},e)).rules=Xo(e.rules),e.rules=_o(e.rules),e.rev&&(e.rev=Xo(e.rev),e.rev=_o(e.rev)),e.exceptions=Xo(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ti=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const ni=ei({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ai=ei(Uo),ri=ei(Ko),oi=ei(qo),ii=ti(ni),si=ti(ai),li=ti(ri),ui=ti(oi),ci=ei(Wo),hi=ei(Ro);var di={fromPast:ni,fromPresent:ai,fromGerund:ri,fromParticiple:oi,toPast:ii,toPresent:si,toGerund:li,toParticiple:ui,toComparative:ci,toSuperlative:hi,fromComparative:ti(ci),fromSuperlative:ti(hi)},gi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),mi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var pi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(fi[t].forEach(n=>e[n]=t),e),{});var bi=fi;var vi=function(e){let t=e.substring(e.length-3);if(!0===bi.hasOwnProperty(t))return bi[t];let n=e.substring(e.length-2);return!0===bi.hasOwnProperty(n)?bi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const yi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var wi=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=vi(e)),yi.hasOwnProperty(e))c=yi[e];else if("Participle"===n)c=Qo(l,i);else if("PastTense"===n)c=Qo(l,a);else if("PresentTense"===n)c=Qo(l,r);else{if("Gerund"!==n)return e;c=Qo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ki=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Qo(i,n),PresentTense:Qo(i,a),Gerund:Qo(i,r),FutureTense:"will "+e},u=Qo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var Pi=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r)){return e.slice(0,n-a)+t[r.length][r]}}return null};const Ai="ically",Ei=new Set(["analyt"+Ai,"chem"+Ai,"class"+Ai,"clin"+Ai,"crit"+Ai,"ecolog"+Ai,"electr"+Ai,"empir"+Ai,"frant"+Ai,"grammat"+Ai,"ident"+Ai,"ideolog"+Ai,"log"+Ai,"mag"+Ai,"mathemat"+Ai,"mechan"+Ai,"med"+Ai,"method"+Ai,"method"+Ai,"mus"+Ai,"phys"+Ai,"phys"+Ai,"polit"+Ai,"pract"+Ai,"rad"+Ai,"satir"+Ai,"statist"+Ai,"techn"+Ai,"technolog"+Ai,"theoret"+Ai,"typ"+Ai,"vert"+Ai,"whims"+Ai]),ji=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ii=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ni={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Gi=function(e){return e.endsWith("ly")?Ei.has(e)?e.replace(/ically/,"ical"):Ii.has(e)?null:Ni.hasOwnProperty(e)?Ni[e]:Pi(e,ji)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],xi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ti=function(e){if(xi.hasOwnProperty(e))return xi[e];let t=Pi(e,Di);return t||e+"ly"};const Ci=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Oi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Bi=new Set(["terrible","annoying"]);const zi=function(e,t){const n=t.two.models.toSuperlative;return Qo(e,n)},Vi=function(e,t){const n=t.two.models.toComparative;return Qo(e,n)};var Fi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var $i={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Fi.hasOwnProperty(i)&&Fi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Tr,nounToSingular:pi,verbToInfinitive:wi,getTense:vi,verbConjugate:ki,adjToSuperlative:zi,adjToComparative:Vi,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Qo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Qo(e,n)},advToAdjective:Gi,adjToAdverb:Ti,adjToNoun:function(e){if(Oi.hasOwnProperty(e))return Oi[e];if(Bi.has(e))return null;let t=Pi(e,Ci);return t||e+"ness"}}}};var Si=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Hi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Li=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Hi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Hi(a,"Infinitive","Verb"),Object.assign(s,l),l=Hi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Hi(o,"Adjective","Superlative"),Object.assign(s,l),l=Hi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ji={two:{models:di}};const Mi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},Wi=function(e,t){const n={model:t,methods:$i};let{lex:a,_multi:r}=$i.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Ki=function(e,t,n){let a=ki(e,Ji);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},qi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=Mi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ki(r,a,!1),"Adj|Present"===o&&(Ki(r,a,!0),function(e,t,n){let a=zi(e,n);t[a]=t[a]||"Superlative";let r=Vi(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=wi(r,Ji,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=wi(r,Ji,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Wi(n,t)};let Ui={one:{_multiCache:{},lexicon:Or},two:{irregularPlurals:wr,models:di,suffixPatterns:xo,prefixPatterns:Co,endsWith:Ho,neighbours:Mo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Br,clues:yo,uncountable:{},orgWords:gi}};Ui=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Wi(e.one.lexicon,e)).one.lexicon,e),e=qi(e.two.switches,e),e=Li(e),e=Si(e)}(Ui);var Ri=Ui;const Zi=/^(under|over|mis|re|un|dis|semi)-?/;var Qi=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(Zi.test(r.normal)){let e=r.normal.replace(Zi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var _i=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const Yi={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Xi=new Set(["formulas","koalas","israelis","menus"]),es=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ts=function(e){if(!e||e.length<=3)return!1;if(Xi.has(e))return!0;let t=e[e.length-1];return Yi.hasOwnProperty(t)?Yi[t].find(t=>e.endsWith(t)):"s"===t&&!es.find(t=>e.endsWith(t))};const ns=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var as=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(ts(e.normal)?_i(e,"Plural","3-plural-guess"):_i(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vi(e.normal);t&&_i(e,t,"3-verb-tense-guess")}}(a)};const rs=/^\p{Lu}[\p{Ll}'’]/u,os=/[0-9]/,is=["Date","Month","WeekDay","Unit"],ss=/^[IVXLCDM]{2,}$/,ls=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,us={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var cs=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===rs.test(o)&&!1===os.test(o)?is.find(e=>a.tags.has(e))?null:(as(e,t,n),a.tags.has("Noun")||a.tags.clear(),_i(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&ss.test(o)&&ls.test(o)&&!us[a.normal]?(_i(a,"RomanNumeral","2-xvii"),!0):null};const hs=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a)){return t[a.length][a]}}return null};var ds=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=hs(a.normal,n.two.suffixPatterns);if(null!==e)return _i(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=hs(a.implicit,n.two.suffixPatterns),null!==e))return _i(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const gs=/['‘’‛‵′`´]/,ms=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return _i(a,e,"2-prefix"),a.confidence=.5,!0}return null};const bs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),vs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!bs.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},ys=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},ws=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var ks=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(vs(r)||vs(o))return _i(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(ys(r)||ys(o))return _i(n,"Year","2-tagYear-close");if(ws(e[t-2])||ws(e[t+2]))return _i(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return _i(n,"Year","2-tagYear-noun")}}}return null};const Ps=/^[A-Z]('s|,)?$/,As=/^[A-Z-]+$/,Es=/([A-Z]\.)+[A-Z]?,?$/,js=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Ns={I:!0,A:!0};var Gs=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===As.test(n)||n.length>5||Ns.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Es.test(n)&&!0!==Is.test(n)&&!0!==Ps.test(n)&&!0!==js.test(n))}(a,n)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ns.hasOwnProperty(a.text)&&Ps.test(a.text)?(a.tags.clear(),_i(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(_i(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&As.test(a.text)&&a.text.length<=6?(_i(a,"Acronym","3-titlecase-acronym"),!0):null};const Ds=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},xs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ts=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ds(e[t-1],r),l=l||Ds(e[t+1],o),l=l||xs(e[t-1],a),l=l||xs(e[t+1],i),l)return _i(s,l,"3-[neighbour]"),as(e,t,n),e[t].confidence=.2,!0}return null};const Cs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Os=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Cs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Cs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Bs=function(e,t,n){0===e[t].tags.size&&(_i(e[t],"Noun","3-[fallback]"),as(e,t,n),e[t].confidence=.1)};const zs=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Vs=(e,t,n)=>0!==t||e[1]?null:n;var Fs={"Adj|Gerund":(e,t)=>zs(e,t),"Adj|Noun":(e,t)=>zs(e,t),"Adj|Past":(e,t)=>zs(e,t),"Adj|Present":(e,t)=>zs(e,t),"Noun|Gerund":(e,t)=>zs(e,t),"Noun|Verb":(e,t)=>zs(e,t)||Vs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>zs(e,t)||Vs(e,t,"PresentTense"),"Person|Noun":(e,t)=>zs(e,t),"Person|Verb":(e,t)=>0!==t&&zs(e,t)};const $s="undefined"!=typeof process&&process.env?process.env:self.env||{},Ss=/^(under|over|mis|re|un|dis|semi)-?/,Hs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&$s.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ls=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&$s.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal}' (#${a}) `),a=t[a],a};const Js={tagSwitch:Qi,checkSuffix:ds,checkRegex:ps,checkCase:cs,checkPrefix:fs,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(_i(o,"Verb","3-[prefix]"),_i(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(_i(o,"Adjective","3-[prefix]"),_i(o,"Prefix","3-[prefix]")))},checkYear:ks},Ms={checkAcronym:Gs,neighbours:Ts,orgWords:Os,nounFallback:Bs,variables:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Ss.test(l)&&!o[l]&&(l=l.replace(Ss,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Hs(e[t+1],n.afterWords);return o=o||Hs(e[t-1],n.beforeWords),o=o||Ls(e[t-1],n.beforeTags,r),o=o||Ls(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Fs[o]&&(u=Fs[o](e,t)||u),u?r([s],u,n,null,`3-[variable] (${o})`):$s.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Ws=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Us={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Rs={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ol=/'/;var il=function(e,t){let n=e[t].normal.split(ol)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const sl=/'/;var ll=function(e,t){let n=e[t].normal.split(sl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var ul=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const cl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},hl={in:!0,by:!0,for:!0};var dl=(e,t)=>{let n=e[t];if(cl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!a.tags.has("Possessive")&&!(a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===hl[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const gl=/'/,ml=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},pl={d:(e,t)=>ll(e,t),t:(e,t)=>ul(e,t),s:(e,t,n)=>dl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):il(e,t)},fl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var bl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===gl.test(a[o].normal)&&([,i]=a[o].normal.split(gl));let s=null;pl.hasOwnProperty(i)&&(s=pl[i](a,o,t)),s&&(s=fl(s,e),rl(n,[r,o],s),ml(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=al.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=nl},hooks:["contractionTwo"]};const vl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const yl=["i","we","they"];let wl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:vl+" #Person",tag:"Person",reason:"randy-smith"},{match:vl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${vl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:yl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:yl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:yl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let kl=null;var Pl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;kl=kl||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(kl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:wl}},hooks:["postTagger"]};var Al=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter((e,t)=>n.some(e=>a[t].has(e)))};var El={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Al(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}};var jl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var Il=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?jl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this};var Nl={api:function(e){e.prototype.swap=Il}};m.plugin(Xs),m.plugin(bl),m.plugin(Pl),m.plugin(El),m.plugin(Nl);export{m as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let a=this.update([t]);e(a,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach(e=>{a=a.concat(e.fullPointer)}),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let a=this.update([t]);return e(a,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let a=this.update([t]);return e(a,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let a=this.update([t]);return e(a,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var r=a;const o=Object.assign({},r,t,n);o.get=o.eq;var i=o;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,i);var s=View;const l=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var u=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&function e(t,n){if(l(n))for(const a in n)l(n[a])?(t[a]||Object.assign(t,{[a]:{}}),e(t[a],n[a])):Object.assign(t,{[a]:n[a]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>a[t]=e.lib[t]),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const c=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var h=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e){return new t(a.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(c(e)){if(c(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(c(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return r};let d=Object.assign({},e);const g=function(e,t){t&&g.addWords(t);let n=h(e,s,d);return e&&n.compute(d.hooks),n};Object.defineProperty(g,"_world",{value:d,writable:!0}),g.tokenize=function(e,t){const{compute:n}=this._world;t&&g.addWords(t);let a=h(e,s,d);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},g.plugin=function(e){return u(e,this._world,s,this),this},g.extend=g.plugin,g.world=function(){return this._world},g.model=function(){return this._world.model},g.methods=function(){return this._world.methods},g.hooks=function(){return this._world.hooks},g.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},g.version="14.4.0";var m=g;const p={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var f={api:function(e){Object.assign(e.prototype,p)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),v=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},y=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},w=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},k=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?y(n):(y(n),y([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!b(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||b(r.text)&&r.text.length>1&&(r.text=(o=r.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),v(e,o,n)};let P=0;const A=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var E=function(e){let[t,n]=e.index||[0,0];P+=1,P=P>46655?0:P,t=t>46655?0:t,n=n>1294?0:n;let a=A(P.toString(36));a+=A(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const j=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},I=e=>"[object Array]"===Object.prototype.toString.call(e),N=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:I(e)?I(e[0])?e[0]:e:[]}(e,r);d=function(e){return e.map(e=>(e.id=E(e),e))}(d),n?(j(t.update([u]).firstTerm()),k(h,u,d,a)):(j(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(x,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,a);let r=this.update(n);n=n.map(e=>e.slice(0,3));let o=(r.docs[0]||[]).map(e=>Array.from(e.tags));if(a.insertAfter(e),r.has("@hasContraction")&&a.contractions){a.grow("@hasContraction+").contractions().expand()}a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},T.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this};var C=T;var B=function(e,t){t.forEach(t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const O={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;if(e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let r=n.fullPointer,o=a.fullPointer.reverse(),i=B(this.document,o);return r=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};O.delete=O.remove;var z=O;const V={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post}),this}};V.deHyphenate=V.dehyphenate,V.toQuotation=V.toQuotations;var F=V;var $={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0}),e}};const S=new Set(["index","sequence","seq","sequential","chron","chronological"]),H=new Set(["freq","frequency","topk","repeats"]),J=new Set(["alpha","alphabetical"]);var L={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map((e,t)=>[t]),r=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:a[t]}));return S.has(e)&&(e="sequential"),J.has(e)&&(e="alpha"),H.has(e)?(r=$.byFreq(r),this.update(r.map(e=>e.pointer))):"function"==typeof $[e]?(r=r.sort($[e]),this.update(r.map(e=>e.pointer))):this}};const M=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var W={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return v(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=M(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=M(this.document,e);return this.document=t,this.all()}var r;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const q=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},D,C,z,F,L,W,K);var U={api:function(e){Object.assign(e.prototype,q)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Q=/'/,_=new Set(["what","how","when","where","why"]),Y=new Set(["be","go","start","think","need"]),X=new Set(["been","gone"]);var ee=function(e,t){let n=e[t].normal.split(Q)[0];if(_.has(n))return[n,"did"];if(e[t+1]){if(X.has(e[t+1].normal))return[n,"had"];if(Y.has(e[t+1].normal))return[n,"would"]}return null};var te=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ne=/'/;var ae=(e,t)=>["je",e[t].normal.split(ne)[1]],re=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},oe=(e,t)=>{let n=e[t].normal.split(ne)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ie=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,se=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,le=/^[0-9]{3}-[0-9]{4}$/;var ue=function(e,t){let n=e[t],a=n.text.match(ie);return null!==a?!0===n.tags.has("PhoneNumber")||le.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(se),null!==a?[a[1],"to",a[4]]:null)};const ce=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,he=new Set(["st","nd","rd","th","am","pm","max"]);var de=function(e,t){let n=e[t].text.match(ce);if(null!==n){let e=n[2].toLowerCase().trim();return he.has(e)?null:[n[1],e]}return null};const ge=/'/,me=/^[0-9][^-–—]*[-–—].*?[0-9]/,pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},fe={t:(e,t)=>te(e,t),d:(e,t)=>ee(e,t)},be={j:(e,t)=>ae(e,t),l:(e,t)=>re(e,t),d:(e,t)=>oe(e,t)},ve=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===ge.test(a[s].normal)&&([l,u]=a[s].normal.split(ge));let c=ve(o,a[s],l,u);!c&&fe.hasOwnProperty(u)&&(c=fe[u](a,s,t)),!c&&be.hasOwnProperty(l)&&(c=be[l](a,s)),c?(c=ye(c,e),Z(n,[i,s],c),pe(n[i],e,s,c.length)):me.test(a[s].normal)?(c=ue(a,s),c&&(c=ye(c,e),Z(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),pe(n[i],e,s,c.length))):(c=de(a,s),c&&(c=ye(c,e),Z(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var ke=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Pe.test(l)){let e=l.replace(Pe,"");if(i.hasOwnProperty(e)&&e.length>3&&Ae.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var je={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},hooks:["lexicon"]};var Ie=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const Ne=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const xe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Te=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=xe(e.goNext,void 0),e.failTo=xe(e.failTo,0),e.endAs=xe(e.endAs,null),e};const Ce={buildTrie:function(e){const t=Ie(e,this.world());return Te(t)}};Ce.compile=Ce.buildTrie;var Be={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Ie(e,this.world));var a;let r=De(this,n,t);return r=r.settle(),r}},lib:Ce};const Oe=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},ze=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Oe(n,t),Object.keys(a).forEach(e=>{a[e]=Oe(a[e],t)}),{ptrs:n,byGroup:a}},Ve=e=>"[object Object]"===Object.prototype.toString.call(e),Fe=e=>e&&Ve(e)&&!0===e.isView,$e=e=>e&&Ve(e)&&!0===e.isNet,Se=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var He={matchOne:function(e,t,n){const a=this.methods.one;if(Fe(e))return this.intersection(e).eq(0);if($e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=ze(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Fe(e))return this.intersection(e);if($e(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Se(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=ze(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Fe(e)){return e.fullPointer.length>0}if($e(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Se(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Fe(e))return this.filter(t=>t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Se(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Fe(e))return this.filter(t=>!t.intersection(e).found);if($e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Se(e,n,this.world);let o=this._cache||[],i=this.filter((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var Je={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&r.push([t[0],0,t[1]])});let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}}),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}}),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Le=function(e,t){return[e[0],e[1],t[2]]},Me=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},We=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},Ke={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Me(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Me(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Le(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=Me(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Le(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>We(e,this)),this.update(o)}};Ke.split=Ke.splitAfter;var qe=Ke;const Ue=Object.assign({},He,Je,qe);Ue.lookBehind=Ue.before,Ue.lookBefore=Ue.before,Ue.lookAhead=Ue.after,Ue.lookAfter=Ue.after,Ue.notIf=Ue.ifNo;var Re=function(e){Object.assign(e.prototype,Ue)};const Ze=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Qe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,_e=/ /g,Ye=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),Xe=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var et=function(e){let t=e.split(Ze),n=[];t.forEach(e=>{Ye(e)?n.push(e):n=n.concat(e.split(Qe))}),n=Xe(n);let a=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||Ye(e)?a.push(e):a=a.concat(e.split(_e))}),a=Xe(a),a};const tt=/\{([0-9]+)?(, *[0-9]*)?\}/,nt=/&&/,at=new RegExp(/^<\s*(\S+)\s*>/),rt=e=>e.charAt(0).toUpperCase()+e.substring(1),ot=e=>e.charAt(e.length-1),it=e=>e.charAt(0),st=e=>e.substring(1),lt=e=>e.substring(0,e.length-1),ut=function(e){return e=st(e),e=lt(e)},ct=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ot(e)&&(n.end=!0,e=lt(e)),"^"===it(e)&&(n.start=!0,e=st(e)),("["===it(e)||"]"===ot(e))&&(n.group=null,"["===it(e)&&(n.groupStart=!0),"]"===ot(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===it(e))){const t=at.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ot(e)&&(n.greedy=!0,e=lt(e)),"*"!==e&&"*"===ot(e)&&"\\*"!==e&&(n.greedy=!0,e=lt(e)),"?"===ot(e)&&(n.optional=!0,e=lt(e)),"!"===it(e)&&(n.negative=!0,e=st(e)),"~"===it(e)&&"~"===ot(e)&&e.length>2&&(e=ut(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===it(e)&&")"===ot(e)){nt.test(e)?(n.choices=e.split(nt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=st(n.choices[0]);let a=n.choices.length-1;n.choices[a]=lt(n.choices[a]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>ct(e,t))),e=""}if("/"===it(e)&&"/"===ot(e))return e=ut(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===it(e)&&"}"===ot(e)){if(e=ut(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===it(e)&&">"===ot(e))return e=ut(e),n.chunk=rt(e),n.greedy=!0,n;if("%"===it(e)&&"%"===ot(e))return e=ut(e),n.switch=e,n}return!0===tt.test(e)&&(e=e.replace(tt,(e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===it(e)?(n.tag=st(e),n.tag=rt(n.tag),n):"@"===it(e)?(n.method=st(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var ht=ct;const dt=/[a-z0-9][-–—][a-z]/i;var gt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&dt.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter(e=>e).reverse(),e.splice(t,1),r.forEach(n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)})}}return e};var mt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return a.push(n(e.root,t.model)),a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var pt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var ft=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=et(e);return a=a.map(e=>ht(e,t)),a=gt(a,n),a=mt(a,n),a=pt(a),a};const bt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var vt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),It={hasQuote:e=>wt.test(e.pre)||kt.test(e.post),hasComma:e=>Et(e,","),hasPeriod:e=>!0===Et(e,".")&&!1===Et(e,"..."),hasExclamation:e=>Et(e,"!"),hasQuestionMark:e=>Et(e,"?")||Et(e,"¿"),hasEllipses:e=>Et(e,"..")||Et(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>Et(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Pt.test(e.post)||Pt.test(e.pre),hasDash:e=>At.test(e.post)||At.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};It.hasQuotation=It.hasQuote;var Nt=It;let Gt=function(){};Gt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(yt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Nt[t.method]&&!0===Nt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Gt(e,t,n,a)):t.choices.some(t=>Gt(e,t,n,a)))}(e,t,n,a);return!0===t.negative?!r:r};var Dt=Gt;const xt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Tt(e,e.t).length=a-e.t}return e.t=a,!0};const Bt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Dt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Dt(e.terms[a],t,a,e.phrase_length)});return!0===a&&n.length>t&&(t=n.length),a})&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup){Tt(e,e.t).length+=a}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null};var Vt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);return a.negative=!1,!0!==Dt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length)||null};var Ft=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Dt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Dt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var $t=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null};var St=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Ht=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Ft(e),a.implicit&&e.terms[e.t+1]&&St(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!$t(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Tt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0};var Jt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==xt(e,r))if(!0!==Dt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(e.negative){if(!Vt(r))return null}if(!0!==e.optional)return null}else{if(!Ht(r))return null}else{if(!Ht(r))return null}else{if(!Ht(r))return null}else{if(!zt(r))return null}else{if(!Ot(r))return null}else{if(!Ct(r))return null}}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach(e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]}),{pointer:o,groups:i}};var Lt=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{a[t]=a[t]||[],a[t].push(e.groups[t])})})),{ptrs:n,byGroup:a}};const Mt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let a=Jt(e,t,0,e.length);return a?(a=Mt(a,n),a):null};var Kt={api:Re,methods:{one:{termMethods:Nt,parseMatch:ft,match:function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Lt(i,r),i.ptrs.forEach(t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const qt=/^\../,Ut=/^#./,Rt=function(e,t){let n={},a={};return Object.keys(t).forEach(r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)})}),{starts:n,ends:a}};var Zt={html:function(e){let{starts:t,ends:n}=Rt(this,e),a="";return this.docs.forEach(e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(_t,""),Xt.test(r)&&(r=" "),r=r.replace(Yt,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(_t,""),r="-"===r?" ":r.replace(Qt,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&en.test(r)||(r+=" "),a+=n+o+r}),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},nn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};nn.clean=nn.normal,nn.reduced=nn.root;var an=nn;let rn=[],on=0;for(;on<64;)rn[on]=0|4294967296*Math.sin(++on%Math.PI);function sn(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(on=i=0;on>4]+rn[i]+~~o[on|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const ln={text:!0,terms:!0};let un={case:"none",unicode:"some",form:"machine",punctuation:"some"};const cn=function(e,t){return Object.assign({},e,t)},hn={text:e=>tn(e,{keepPunct:!0},!1),normal:e=>tn(e,cn(an.normal,{keepPunct:!0}),!1),implicit:e=>tn(e,cn(an.implicit,{keepPunct:!0}),!1),machine:e=>tn(e,un,!1),root:e=>tn(e,cn(un,{form:"root"}),!1),hash:e=>sn(tn(e,{keepPunct:!0},!1)),offset:e=>{let t=hn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};hn.sentences=hn.sentence,hn.clean=hn.normal,hn.reduced=hn.root;const dn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},ln,a)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let r={};return Object.keys(a).forEach(o=>{a[o]&&hn[o]&&(r[o]=hn[o](e,n,t))}),r}));var n,a;return"number"==typeof e?t[e]:t}};dn.data=dn.json;var gn=dn;var mn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var pn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var fn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(pn.blue("\n ──────")),t.forEach(e=>{console.log(pn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=pn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=pn.blue(" │ ")+pn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return pn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var bn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(pn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(pn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(pn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(pn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${pn.blue(a[1])}${a[2]}`}(a,e.offset,t)}),console.log(a)})};const yn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var wn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(a=>{e.match(a).fullPointer.forEach(e=>{n[e[3]]={fn:t[a],end:e[2]}})}),n}(e,t),a="";return e.docs.forEach((t,r)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var Pn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&an.hasOwnProperty(e)?t=Object.assign({},an[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},In=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Nn=function(e,t){let n=In(t),a=[];return e.forEach(e=>{let[t]=e,r=n[t]||[];if(r=r.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===r.length)return void a.push({passthrough:e});r=r.sort((e,t)=>e[1]-t[1]);let o=e;r.forEach((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)})}),a};var Gn={one:{termList:function(e){let t=[];for(let n=0;n{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<4;a+=1){if(t[n-a]){let r=t[n-a].findIndex(t=>t.id===e);if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex(t=>t.id===e);if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex(e=>e.id===r);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:In,splitAll:Nn}}};var Dn=function(e,t){let n=e.concat(t),a=In(n),r=[];return n.forEach(e=>{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter(t=>jn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);r.push(o)}),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Tn=function(e,t){let n=In(t),a=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>jn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Bn=function(e,t){return e.map(e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e})},On={union:function(e){e=Cn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)}};On.and=On.union,On.intersection=function(e){e=Cn(e,this);let t=Tn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)},On.not=function(e){e=Cn(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=Bn(t,this.document),this.toView(t)},On.difference=On.not,On.complement=function(){let e=this.all(),t=xn(e.fullPointer,this.fullPointer);return t=Bn(t,this.document),this.toView(t)},On.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Dn(e,[t])}),e=Bn(e,this.document),this.update(e)};var zn={methods:Gn,api:function(e){Object.assign(e.prototype,On)}};const Vn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Fn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Vn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Vn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Vn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var $n=function(e,t){return e.map((n,a)=>{let r=[];Object.keys(t).forEach(n=>{e[a].has(n)&&(r=r.concat(t[n]))});let o={};return r=r.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),r})};var Sn=function(e,t){return e.map((e,n)=>{let a=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>a.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>a.has(e)).length>=e.minWant})})};var Hn=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)}),!0===a.matchOne))return[r[0]]}return r};var Jn=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Fn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let a=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:a}},bulkMatch:function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=$n(r,t.hooks);return o=Sn(o,r),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let a=t[n].length;return e.filter(e=>a>=e.minWords)})}(o,e),Hn(o,e,n,a)},bulkTagger:function(e,t,n){const{model:a,methods:r}=n,{getDoc:o,setTag:i,unTag:s}=r.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Jn(l,e.tag,a))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${r}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,r),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Mn=/ /,Wn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Kn=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Mn.test(t))!function(e,t,n,a){let r=t.split(Mn);e.forEach((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),Kn(e,o,n,a))})}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nqn(e,t,n,a))};var Un=qn;var Rn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Zn({id:e})),t}return[Zn({id:e})]}(e))}),n=n.filter(e=>e);let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),a.push(n)})}return n},Xn=e=>"[object Array]"===Object.prototype.toString.call(e),ea=e=>(e=e||"").trim(),ta=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Qn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:_n(e)})});let a=function(e){let t={children:[]};return e.forEach((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Zn({});return e.forEach(e=>{if((e=Zn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(Yn(t=e).forEach(Zn),t);var t},na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Yn(e).forEach((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"}),a},aa=function(e){let t=Yn(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},ra={text:na,txt:na,array:aa,flat:aa},oa=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(na(e,!0)),null):ra.hasOwnProperty(t)?ra[t](e):e},ia=e=>{Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},sa=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=ea(e),!sa.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!a)return null;e=a}return e})(this.json,e)||Zn({});return new g$1(t)}add(e,t={}){if(Xn(e))return e.forEach(e=>this.add(ea(e),t)),this;e=ea(e);let n=Zn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=ea(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return Yn(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=Yn(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return Yn(this.json)}fillDown(){var e;return e=this.json,Yn(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Xn(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ia(this.json);let e=Yn(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ia(this.json),oa(this.json,e)}debug(){return ia(this.json),oa(this.json,"debug"),this}}const la=function(e){let t=ta(e);return new g$1(t)};la.prototype.plugin=function(e){e(this)};var ua={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const ca=function(e){if(ua.hasOwnProperty(e.id))return ua[e.id];if(ua.hasOwnProperty(e.is))return ua[e.is];let t=e._cache.parents.find(e=>ua[e]);return ua[t]};var ha=function(e){const t={};return e.forEach(e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:ca(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const da=function(e){return e?"string"==typeof e?[e]:e:[]};var ga=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=da(e[t].children),e[t].not=da(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var ma={one:{setTag:Un,unTag:Rn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=ga(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}});return la(t).cache().fillDown().out("array")}(Object.assign({},t,e));return ha(n)}}};const pa=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var fa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),pa(e)?e.forEach(e=>r.one.setTag(a,e,i,n,t)):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return pa(e)?e.forEach(e=>a.one.unTag(n,e,i)):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach((e,t)=>{e.forEach((e,r)=>{n.find(t=>e.tags.has(t))&&a.push([t,r,r+1])})});let r=this.update(a);return this.difference(r)}};var ba=function(e){Object.assign(e.prototype,fa)};var va={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const ya=new Set(["Auxiliary","Possessive"]);var wa={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(ya.has(e)||!t.hasOwnProperty(n))return 1;if(ya.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})}(t,a)})})}},methods:ma,api:ba,lib:va};const ka=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Pa=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Aa=function(e){let t=[],n=e.split(Pa);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const Ga=/\S/,Da=/^\s+/;var xa=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Ga.test(e))return[];e=e.replace(" "," ");let n=Aa(e),a=Ia(n),r=Na(a,t);if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Ha=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Ja=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,La=/['’]/,Ma=/^[a-z]\.([a-z]\.)+/i,Wa=/^[-+.][0-9]/,Ka=/^'[0-9]{2}/;var qa=function(e){let t=e,n="",a="";return""===(e=(e=e.replace(Ha,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Wa.test(e)?"'"===n&&Ka.test(e)?(n="",t):"":(n="",t)))).replace(Ja,r=>(a=r,La.test(r)&&/[sn]['’]$/.test(t)&&!1===La.test(n)?(a=a.replace(La,""),"'"):!0===Ma.test(e)?(a=a.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(a=e||"","")),e=t,n=""),{str:e,pre:n,post:a}};var Ua=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ra=/([A-Z]\.)+[A-Z]?,?$/,Za=/^[A-Z]\.,?$/,Qa=/[A-Z]{2,}('s|,)?$/,_a=/([a-z]\.)+[a-z]\.?$/;var Ya=function(e){return function(e){return!0===Ra.test(e)||!0===_a.test(e)||!0===Za.test(e)||!0===Qa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Xa=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Ua(a),a=n(a,t),a=Ya(a),e.normal=a};const er=/[ .][A-Z]\.? *$/i,tr=/(?:\u2026|\.{2,}) *$/,nr=/\p{L}/u;var ar={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach((e,t)=>{n[e]&&(a[t]=n[e])}),a.join("")},tokenize:{splitSentences:xa,isSentence:function(e,t){if(!1===nr.test(e))return!1;if(!0===er.test(e))return!1;if(!0===tr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split($a);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=za(n),n=Ba(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:a}=qa(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map(e=>{let n=o(e,a);return n=n.map(i),n.forEach(e=>{Xa(e,t)}),n})}}}};var rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let or={},ir={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{or[t]=!0,ir[t]="Abbreviation",void 0!==e[1]&&(ir[t]=[ir[t],e[1]])})});var sr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let lr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ur={};Object.keys(lr).forEach((function(e){lr[e].split("").forEach((function(t){ur[t]=e}))}));const cr=/\//,hr=/[a-z]\.[a-z]/i,dr=/[0-9]/;var gr=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),cr.test(n)&&!hr.test(n)&&!dr.test(n)){let t=n.split(cr);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const mr=/^\p{Letter}+-\p{Letter}+$/u;var pr=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),mr.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var fr=function(e){let t=0,n=0,a=e.document;for(let e=0;ebr(e,gr),machine:e=>br(e,pr),normal:e=>br(e,Xa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]}),a};const kr={safe:!0,min:3};var Pr={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=yr},lib:{typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},kr,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=wr(e,t,this.world());return Object.keys(r).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};m.extend(U),m.extend(En),m.extend(Kt),m.extend(zn),m.extend(wa),m.plugin(we),m.extend(vr),m.plugin(f),m.extend(Be),m.extend(Pr),m.extend(je),m.extend(Ln);var Ar={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Er={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const jr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ir=jr.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Nr=function(e){if(void 0!==Ir[e])return Ir[e];let t=0,n=1,a=36,r=1;for(;n=0;n--,r*=36){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t};var Gr=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const a=xr(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Tr(Er[e]);zr.test(e)?Object.keys(t).forEach(t=>{if(Fr[t]=e,"Noun|Verb"===e){let e=Or(t,$r);Fr[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Vr[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Vr[e]="Emoticon"),delete Vr[""],delete Vr.null,delete Vr[" "];const Sr="Adjective";var Hr={beforeTags:{Determiner:Sr,Possessive:Sr},afterTags:{Adjective:Sr},beforeWords:{seem:Sr,seemed:Sr,seems:Sr,feel:Sr,feels:Sr,felt:Sr,appear:Sr,appears:Sr,appeared:Sr,also:Sr,over:Sr,under:Sr,too:Sr,it:Sr,but:Sr,still:Sr,really:Sr,quite:Sr,well:Sr,very:Sr,deeply:Sr,profoundly:Sr,extremely:Sr,so:Sr,badly:Sr,mostly:Sr,totally:Sr,awfully:Sr,rather:Sr,nothing:Sr,something:Sr,anything:Sr,not:Sr,me:Sr},afterWords:{too:Sr,also:Sr,or:Sr}};const Jr="Gerund";var Lr={beforeTags:{Adverb:Jr,Preposition:Jr,Conjunction:Jr},afterTags:{Adverb:Jr,Possessive:Jr,Person:Jr,Pronoun:Jr,Determiner:Jr,Copula:Jr,Preposition:Jr,Conjunction:Jr,Comparative:Jr},beforeWords:{been:Jr,keep:Jr,continue:Jr,stop:Jr,am:Jr,be:Jr,me:Jr,began:Jr,start:Jr,starts:Jr,started:Jr,stops:Jr,stopped:Jr,help:Jr,helps:Jr,avoid:Jr,avoids:Jr,love:Jr,loves:Jr,loved:Jr,hate:Jr,hates:Jr,hated:Jr},afterWords:{you:Jr,me:Jr,her:Jr,him:Jr,them:Jr,their:Jr,it:Jr,this:Jr,there:Jr,on:Jr,about:Jr,for:Jr}};var Mr={beforeTags:Object.assign({},Hr.beforeTags,Lr.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Hr.afterTags,Lr.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Hr.beforeWords,Lr.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Hr.afterWords,Lr.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wr="Singular";var Kr={beforeTags:{Determiner:Wr,Possessive:Wr,Acronym:Wr,Noun:Wr,Adjective:Wr,PresentTense:Wr,Gerund:Wr,PastTense:Wr,Infinitive:Wr,Date:Wr},afterTags:{Value:Wr,Modal:Wr,Copula:Wr,PresentTense:Wr,PastTense:Wr,Demonym:Wr},beforeWords:{the:Wr,with:Wr,without:Wr,of:Wr,for:Wr,any:Wr,all:Wr,on:Wr,cut:Wr,cuts:Wr,save:Wr,saved:Wr,saves:Wr,make:Wr,makes:Wr,made:Wr,minus:Wr,plus:Wr,than:Wr,another:Wr,versus:Wr,neither:Wr,favorite:Wr,best:Wr,daily:Wr,weekly:Wr,linear:Wr,binary:Wr,mobile:Wr,lexical:Wr,technical:Wr,computer:Wr,scientific:Wr,formal:Wr},afterWords:{of:Wr,system:Wr,aid:Wr,method:Wr,utility:Wr,tool:Wr,reform:Wr,therapy:Wr,philosophy:Wr,room:Wr,authority:Wr,says:Wr,said:Wr,wants:Wr,wanted:Wr}};const qr={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ur={beforeTags:Object.assign({},Hr.beforeTags,Kr.beforeTags,qr.beforeTags),afterTags:Object.assign({},Hr.afterTags,Kr.afterTags),beforeWords:Object.assign({},Hr.beforeWords,Kr.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Hr.afterWords,Kr.afterWords)};const Rr={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Zr={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Qr={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},_r={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Yr={beforeTags:Object.assign({},Hr.beforeTags,Rr),afterTags:Object.assign({},Hr.afterTags,Zr),beforeWords:Object.assign({},Hr.beforeWords,Qr),afterWords:Object.assign({},Hr.afterWords,_r)};const Xr="Infinitive";var eo={beforeTags:{Modal:Xr,Adverb:Xr,Negative:Xr,Plural:Xr},afterTags:{Determiner:Xr,Adverb:Xr,Possessive:Xr,Preposition:Xr},beforeWords:{i:Xr,we:Xr,you:Xr,they:Xr,to:Xr,please:Xr,will:Xr,have:Xr,had:Xr,would:Xr,could:Xr,should:Xr,do:Xr,did:Xr,does:Xr,can:Xr,must:Xr,us:Xr,me:Xr,he:Xr,she:Xr,it:Xr,being:Xr},afterWords:{the:Xr,me:Xr,you:Xr,him:Xr,her:Xr,them:Xr,it:Xr,a:Xr,an:Xr,up:Xr,down:Xr,by:Xr,out:Xr,off:Xr,under:Xr,when:Xr,all:Xr,to:Xr,because:Xr,although:Xr,before:Xr,how:Xr,otherwise:Xr,together:Xr,though:Xr,yet:Xr}};const to={afterTags:{Noun:"Adjective",Conjunction:void 0}};var no={beforeTags:Object.assign({},Hr.beforeTags,eo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Hr.afterTags,eo.afterTags,to.afterTags),beforeWords:Object.assign({},Hr.beforeWords,eo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Hr.afterWords,eo.afterWords,{to:void 0})};const ao={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ro={},oo={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},io={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var so={beforeTags:Object.assign({},Lr.beforeTags,Kr.beforeTags,ao),afterTags:Object.assign({},Lr.afterTags,Kr.afterTags,ro),beforeWords:Object.assign({},Lr.beforeWords,Kr.beforeWords,oo),afterWords:Object.assign({},Lr.afterWords,Kr.afterWords,io)};var lo={beforeTags:Object.assign({},eo.beforeTags,Kr.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},eo.afterTags,Kr.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},eo.beforeWords,Kr.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},eo.afterWords,Kr.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const uo="Person";var co={beforeTags:{Honorific:uo,Person:uo,Preposition:uo},afterTags:{Person:uo,ProperNoun:uo,Verb:uo},ownTags:{ProperNoun:uo},beforeWords:{hi:uo,hey:uo,yo:uo,dear:uo,hello:uo},afterWords:{said:uo,says:uo,told:uo,tells:uo,feels:uo,felt:uo,seems:uo,thinks:uo,thought:uo,spends:uo,spendt:uo,plays:uo,played:uo,sing:uo,sang:uo,learn:uo,learned:uo,wants:uo,wanted:uo}};const ho="Month",go={beforeTags:{Date:ho,Value:ho},afterTags:{Date:ho,Value:ho},beforeWords:{by:ho,in:ho,on:ho,during:ho,after:ho,before:ho,between:ho,until:ho,til:ho,sometime:ho,of:ho,this:ho,next:ho,last:ho,previous:ho,following:ho},afterWords:{sometime:ho,in:ho,of:ho,until:ho,the:ho}};var mo={beforeTags:Object.assign({},co.beforeTags,go.beforeTags),afterTags:Object.assign({},co.afterTags,go.afterTags),beforeWords:Object.assign({},co.beforeWords,go.beforeWords),afterWords:Object.assign({},co.afterWords,go.afterWords)};const po={Place:"Place"},fo={Place:"Place",Abbreviation:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},vo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let yo="Unit";const wo={"Adj|Gerund":Mr,"Adj|Noun":Ur,"Adj|Past":Yr,"Adj|Present":no,"Noun|Verb":lo,"Noun|Gerund":so,"Person|Noun":{beforeTags:Object.assign({},Kr.beforeTags,co.beforeTags),afterTags:Object.assign({},Kr.afterTags,co.afterTags),beforeWords:Object.assign({},Kr.beforeWords,co.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Kr.afterWords,co.afterWords)},"Person|Date":mo,"Person|Verb":{beforeTags:Object.assign({},co.beforeTags,eo.beforeTags),afterTags:Object.assign({},co.afterTags,eo.afterTags),beforeWords:Object.assign({},co.beforeWords,eo.beforeWords),afterWords:Object.assign({},co.afterWords,eo.afterWords)},"Person|Place":{beforeTags:Object.assign({},po,co.beforeTags),afterTags:Object.assign({},fo,co.afterTags),beforeWords:Object.assign({},bo,co.beforeWords),afterWords:Object.assign({},vo,co.afterWords)},"Unit|Noun":{beforeTags:{Value:yo},afterTags:{},beforeWords:{per:yo,every:yo,each:yo,square:yo,cubic:yo,sq:yo,metric:yo},afterWords:{per:yo,squared:yo,cubed:yo,long:yo}}},ko=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};wo["Plural|Verb"]={beforeWords:ko(wo["Noun|Verb"].beforeWords,{}),afterWords:ko(wo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:ko(wo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:ko(wo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Po=wo;const Ao="Adjective",Eo="Infinitive",jo="PresentTense",Io="Singular",No="PastTense",Go="Adverb",Do="Plural",xo="Verb",To="LastName",Co="Participle";var Bo=[null,null,{ea:Io,ia:"Noun",ic:Ao,ly:Go,"'n":xo,"'t":xo},{oed:No,ued:No,xed:No," so":Go,"'ll":"Modal","'re":"Copula",azy:Ao,eer:"Noun",end:xo,ped:No,ffy:Ao,ify:Eo,ing:"Gerund",ize:Eo,ibe:Eo,lar:Ao,mum:Ao,nes:jo,nny:Ao,ous:Ao,que:Ao,rol:Io,sis:Io,ogy:Io,oid:Io,ian:Io,zes:jo,eld:No,ken:Co,ven:Co,ten:Co,ect:Eo,ict:Eo,ign:Eo,ful:Ao,bal:Ao},{amed:No,aped:No,ched:No,lked:No,rked:No,reed:No,nded:No,mned:Ao,cted:No,dged:No,ield:Io,akis:To,cede:Eo,chuk:To,czyk:To,ects:jo,ends:xo,enko:To,ette:Io,wner:Io,fies:jo,fore:Go,gate:Eo,gone:Ao,ices:Do,ints:Do,ruct:Eo,ines:Do,ions:Do,less:Ao,llen:Ao,made:Ao,nsen:To,oses:jo,ould:"Modal",some:Ao,sson:To,tion:Io,tage:"Noun",ique:Io,tive:Ao,tors:"Noun",vice:Io,lier:Io,fier:Io,wned:No,gent:Io,tist:Io,pist:Io,rist:Io,mist:Io,yist:Io,vist:Io,lite:Io,site:Io,rite:Io,mite:Io,bite:Io,mate:Io,date:Io,ndal:Io,vent:Io,uist:Io,gist:Io,note:Io,cide:Io,wide:Ao,vide:Eo,ract:Eo,duce:Eo,pose:Eo,eive:Eo,lyze:Eo,lyse:Eo,iant:Ao,nary:Ao},{elist:Io,holic:Io,phite:Io,tized:No,urned:No,eased:No,ances:Do,bound:Ao,ettes:Do,fully:Go,ishes:jo,ities:Do,marek:To,nssen:To,ology:"Noun",osome:Io,tment:Io,ports:Do,rough:Ao,tches:jo,tieth:"Ordinal",tures:Do,wards:Go,where:Go,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Io,scent:Io,onist:Io,anist:Io,alist:Io,olist:Io,icist:Io,ounce:Eo,iable:Ao,borne:Ao,gnant:Ao,inant:Ao,igent:Ao,atory:Ao,rient:Io,dient:Io},{auskas:To,parent:Io,cedent:Io,ionary:Io,cklist:Io,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:To,borough:"Place",sdottir:To}];const Oo="Adjective";var zo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Oo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Oo,tele:"Noun","pro-":Oo,"mis-":"Verb","dis-":"Verb","pre-":Oo},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Oo,radio:"Noun",tetra:"Noun","omni-":Oo,"post-":Oo},{pseudo:Oo,"extra-":Oo,"hyper-":Oo,"inter-":Oo,"intra-":Oo,"deca-":Oo},{electro:"Noun"}];const Vo="Adjective",Fo="Infinitive",$o="PresentTense",So="Singular",Ho="PastTense",Jo="Expression",Lo="LastName";var Mo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Lo],[/.[^aeiou]ica$/,So,"harmonica"],[/^([hyj]a+)+$/,Jo,"haha"]],c:[[/.[^aeiou]ic$/,Vo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ho,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ho,"rammed"],[/.[aeiou][sg]hed$/,Ho,"gushed"],[/.[aeiou]red$/,Ho,"hired"],[/.[aeiou]r?ried$/,Ho,"hurried"],[/[^aeiou]ard$/,So,"steward"],[/[aeiou][^aeiou]id$/,Vo,""],[/.[vrl]id$/,Vo,"livid"],[/..led$/,Ho,"hurled"],[/.[iao]sed$/,Ho,""],[/[aeiou]n?[cs]ed$/,Ho,""],[/[aeiou][rl]?[mnf]ed$/,Ho,""],[/[aeiou][ns]?c?ked$/,Ho,"bunked"],[/[aeiou]gned$/,Ho],[/[aeiou][nl]?ged$/,Ho],[/.[tdbwxyz]ed$/,Ho],[/[^aeiou][aeiou][tvx]ed$/,Ho],[/.[cdflmnprstv]ied$/,Ho,"emptied"]],e:[[/.[lnr]ize$/,Fo,"antagonize"],[/.[^aeiou]ise$/,Fo,"antagonise"],[/.[aeiou]te$/,Fo,"bite"],[/.[^aeiou][ai]ble$/,Vo,"fixable"],[/.[^aeiou]eable$/,Vo,"maleable"],[/.[ts]ive$/,Vo,"festive"],[/[a-z]-like$/,Vo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vo,"cornish"],[/.v[iy]ch$/,Lo,"..ovich"],[/^ug?h+$/,Jo,"ughh"],[/^uh[ -]?oh$/,Jo,"uhoh"],[/[a-z]-ish$/,Vo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Lo,"polish-male"]],k:[[/^(k){2}$/,Jo,"kkkk"]],l:[[/.[gl]ial$/,Vo,"familial"],[/.[^aeiou]ful$/,Vo,"fitful"],[/.[nrtumcd]al$/,Vo,"natal"],[/.[^aeiou][ei]al$/,Vo,"familial"]],m:[[/.[^aeiou]ium$/,So,"magnesium"],[/[^aeiou]ism$/,So,"schism"],[/^[hu]m+$/,Jo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Jo,"noooo"],[/^(yo)+$/,Jo,"yoo"],[/^wo{2,}[pt]?$/,Jo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,So],[/[^i]fer$/,Fo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vo],[/[aeiou].*ist$/,Vo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,$o],[/.[rln]ates$/,$o],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,So],[/.[aeiou]sks$/,$o],[/.[aeiou]kes$/,$o],[/[aeiou][^aeiou]is$/,So],[/[a-z]'s$/,"Noun"],[/^yes+$/,Jo]],v:[[/.[^aeiou][ai][kln]ov$/,Lo]],y:[[/.[cts]hy$/,Vo],[/.[st]ty$/,Vo],[/.[tnl]ary$/,Vo],[/.[oe]ry$/,So],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Vo],[/...lly$/,"Adverb"],[/.[gk]y$/,Vo],[/[bszmp]{2}y$/,Vo],[/.[ai]my$/,Vo],[/[ea]{2}zy$/,Vo],[/.[^aeiou]ity$/,So]]};const Wo="Verb",Ko="Noun";var qo={leftTags:[["Adjective",Ko],["Possessive",Ko],["Determiner",Ko],["Adverb",Wo],["Pronoun",Wo],["Value",Ko],["Ordinal",Ko],["Modal",Wo],["Superlative",Ko],["Demonym",Ko],["Honorific","Person"]],leftWords:[["i",Wo],["first",Ko],["it",Wo],["there",Wo],["not",Wo],["because",Ko],["if",Ko],["but",Ko],["who",Wo],["this",Ko],["his",Ko],["when",Ko],["you",Wo],["very","Adjective"],["old",Ko],["never",Wo],["before",Ko],["a","Singular"],["the",Ko],["been",Wo]],rightTags:[["Copula",Ko],["PastTense",Ko],["Conjunction",Ko],["Modal",Ko]],rightWords:[["there",Wo],["me",Wo],["man","Adjective"],["only",Wo],["him",Wo],["it",Wo],["were",Ko],["took",Ko],["himself",Wo],["went",Ko],["who",Ko],["jr","Person"]]},Uo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ro={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Zo={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Qo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},_o={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Yo=/^.([0-9]+)/;var Xo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(Yo);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(Yo,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)}),t},ti=/^([0-9]+)/,ni=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ti);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(ti,"")]}(n[0],n[1])})};var ai=function(e={}){return(e=Object.assign({},e)).rules=ni(e.rules),e.rules=ei(e.rules),e.rev&&(e.rev=ni(e.rev),e.rev=ei(e.rev)),e.exceptions=ni(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ri=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const oi=ai({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ii=ai(Qo),si=ai(Ro),li=ai(Zo),ui=ri(oi),ci=ri(ii),hi=ri(si),di=ri(li),gi=ai(Uo),mi=ai(_o);var pi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:gi,toSuperlative:mi,fromComparative:ri(gi),fromSuperlative:ri(mi)},fi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),bi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var vi=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce((e,t)=>(e[r[t]]=t,e),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi;var ki=function(e){let t=e.substring(e.length-3);if(!0===wi.hasOwnProperty(t))return wi[t];let n=e.substring(e.length-2);return!0===wi.hasOwnProperty(n)?wi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Pi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ai=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=ki(e)),Pi.hasOwnProperty(e))c=Pi[e];else if("Participle"===n)c=Xo(l,i);else if("PastTense"===n)c=Xo(l,a);else if("PresentTense"===n)c=Xo(l,r);else{if("Gerund"!==n)return e;c=Xo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Ei=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Xo(i,n),PresentTense:Xo(i,a),Gerund:Xo(i,r),FutureTense:"will "+e},u=Xo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var ji=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r)){return e.slice(0,n-a)+t[r.length][r]}}return null};const Ii="ically",Ni=new Set(["analyt"+Ii,"chem"+Ii,"class"+Ii,"clin"+Ii,"crit"+Ii,"ecolog"+Ii,"electr"+Ii,"empir"+Ii,"frant"+Ii,"grammat"+Ii,"ident"+Ii,"ideolog"+Ii,"log"+Ii,"mag"+Ii,"mathemat"+Ii,"mechan"+Ii,"med"+Ii,"method"+Ii,"method"+Ii,"mus"+Ii,"phys"+Ii,"phys"+Ii,"polit"+Ii,"pract"+Ii,"rad"+Ii,"satir"+Ii,"statist"+Ii,"techn"+Ii,"technolog"+Ii,"theoret"+Ii,"typ"+Ii,"vert"+Ii,"whims"+Ii]),Gi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Di=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),xi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ti=function(e){return e.endsWith("ly")?Ni.has(e)?e.replace(/ically/,"ical"):Di.has(e)?null:xi.hasOwnProperty(e)?xi[e]:ji(e,Gi)||e:null};const Ci=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Oi=function(e){if(Bi.hasOwnProperty(e))return Bi[e];let t=ji(e,Ci);return t||e+"ly"};const zi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Vi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Fi=new Set(["terrible","annoying"]);const $i=function(e,t){const n=t.two.models.toSuperlative;return Xo(e,n)},Si=function(e,t){const n=t.two.models.toComparative;return Xo(e,n)};var Hi={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach(e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ji={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let a=0;e.forEach((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)}),a{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Hi.hasOwnProperty(i)&&Hi[i](t,r,n,a),r[t]=r[t]||i}),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},transform:{nounToPlural:Or,nounToSingular:vi,verbToInfinitive:Ai,getTense:ki,verbConjugate:Ei,adjToSuperlative:$i,adjToComparative:Si,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Xo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Xo(e,n)},advToAdjective:Ti,adjToAdverb:Oi,adjToNoun:function(e){if(Vi.hasOwnProperty(e))return Vi[e];if(Fi.has(e))return null;let t=ji(e,zi);return t||e+"ness"}}}};var Li=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Mi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e),{})};var Wi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Mi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Mi(a,"Infinitive","Verb"),Object.assign(s,l),l=Mi(r,"Infinitive","Gerund"),Object.assign(s,l),l=Mi(o,"Adjective","Superlative"),Object.assign(s,l),l=Mi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Ki={two:{models:pi}};const qi={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},Ui=function(e,t){const n={model:t,methods:Ji};let{lex:a,_multi:r}=Ji.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},Ri=function(e,t,n){let a=Ei(e,Ki);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},Zi=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach(r=>{const o=e[r];if(n[r]=qi[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(r,a,!1),"Adj|Present"===o&&(Ri(r,a,!0),function(e,t,n){let a=$i(e,n);t[a]=t[a]||"Superlative";let r=Si(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ai(r,Ki,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ai(r,Ki,"PastTense");a[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Qi={one:{_multiCache:{},lexicon:Vr},two:{irregularPlurals:Ar,models:pi,suffixPatterns:Bo,prefixPatterns:zo,endsWith:Mo,neighbours:qo,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Fr,clues:Po,uncountable:{},orgWords:fi}};Qi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Ui(e.one.lexicon,e)).one.lexicon,e),e=Zi(e.two.switches,e),e=Wi(e),e=Li(e)}(Qi);var _i=Qi;const Yi=/^(under|over|mis|re|un|dis|semi)-?/;var Xi=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(Yi.test(r.normal)){let e=r.normal.replace(Yi,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}};var es=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const ts={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},ns=new Set(["formulas","koalas","israelis","menus"]),as=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var rs=function(e){if(!e||e.length<=3)return!1;if(ns.has(e))return!0;let t=e[e.length-1];return ts.hasOwnProperty(t)?ts[t].find(t=>e.endsWith(t)):"s"===t&&!as.find(t=>e.endsWith(t))};const os=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var is=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t))||(rs(e.normal)?es(e,"Plural","3-plural-guess"):es(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ki(e.normal);t&&es(e,t,"3-verb-tense-guess")}}(a)};const ss=/^\p{Lu}[\p{Ll}'’]/u,ls=/[0-9]/,us=["Date","Month","WeekDay","Unit"],cs=/^[IVXLCDM]{2,}$/,hs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ds={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gs=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===ss.test(o)&&!1===ls.test(o)?us.find(e=>a.tags.has(e))?null:(is(e,t,n),a.tags.has("Noun")||a.tags.clear(),es(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&cs.test(o)&&hs.test(o)&&!ds[a.normal]?(es(a,"RomanNumeral","2-xvii"),!0):null};const ms=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a)){return t[a.length][a]}}return null};var ps=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=ms(a.normal,n.two.suffixPatterns);if(null!==e)return es(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=ms(a.implicit,n.two.suffixPatterns),null!==e))return es(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,bs=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return es(a,e,"2-prefix"),a.confidence=.5,!0}return null};const ws=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),ks=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!ws.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Ps=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},As=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Es=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(ks(r)||ks(o))return es(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Ps(r)||Ps(o))return es(n,"Year","2-tagYear-close");if(As(e[t-2])||As(e[t+2]))return es(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return es(n,"Year","2-tagYear-noun")}}}return null};const js=/^[A-Z]('s|,)?$/,Is=/^[A-Z-]+$/,Ns=/([A-Z]\.)+[A-Z]?,?$/,Gs=/[A-Z]{2,}('s|,)?$/,Ds=/([a-z]\.)+[a-z]\.?$/,xs={I:!0,A:!0};var Ts=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Is.test(n)||n.length>5||xs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ns.test(n)&&!0!==Ds.test(n)&&!0!==js.test(n)&&!0!==Gs.test(n))}(a,n)?(a.tags.clear(),es(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!xs.hasOwnProperty(a.text)&&js.test(a.text)?(a.tags.clear(),es(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(es(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Is.test(a.text)&&a.text.length<=6?(es(a,"Acronym","3-titlecase-acronym"),!0):null};const Cs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Bs=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Os=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Cs(e[t-1],r),l=l||Cs(e[t+1],o),l=l||Bs(e[t-1],a),l=l||Bs(e[t+1],i),l)return es(s,l,"3-[neighbour]"),is(e,t,n),e[t].confidence=.2,!0}return null};const zs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Vs=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&zs(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&zs(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null};var Fs=function(e,t,n){0===e[t].tags.size&&(es(e[t],"Noun","3-[fallback]"),is(e,t,n),e[t].confidence=.1)};const $s=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ss=(e,t,n)=>0!==t||e[1]?null:n;var Hs={"Adj|Gerund":(e,t)=>$s(e,t),"Adj|Noun":(e,t)=>$s(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>$s(e,t),"Adj|Present":(e,t)=>$s(e,t),"Noun|Gerund":(e,t)=>$s(e,t),"Noun|Verb":(e,t)=>$s(e,t)||Ss(e,t,"Infinitive"),"Plural|Verb":(e,t)=>$s(e,t)||Ss(e,t,"PresentTense"),"Person|Noun":(e,t)=>$s(e,t),"Person|Verb":(e,t)=>0!==t&&$s(e,t)};const Js="undefined"!=typeof process&&process.env?process.env:self.env||{},Ls=/^(under|over|mis|re|un|dis|semi)-?/,Ms=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const a=t[n];return a&&Js.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},Ws=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return a&&Js.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};const Ks={tagSwitch:Xi,checkSuffix:ps,checkRegex:vs,checkCase:gs,checkPrefix:ys,checkHyphen:function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(es(o,"Verb","3-[prefix]"),es(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(es(o,"Adjective","3-[prefix]"),es(o,"Prefix","3-[prefix]")))},checkYear:Es},qs={checkAcronym:Ts,neighbours:Os,orgWords:Vs,nounFallback:Fs,switches:function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Ls.test(l)&&!o[l]&&(l=l.replace(Ls,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Ms(e[t+1],n.afterWords);return o=o||Ms(e[t-1],n.beforeWords),o=o||Ws(e[t-1],n.beforeTags,r),o=o||Ws(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Hs[o]&&(u=Hs[o](e,t)||u),u?(r([s],u,n,null,`3-[variable] (${o})`),is(e,t,a)):Js.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},Us=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const Qs={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var _s={preTagger:function(e){const{methods:t,model:n,world:a}=e;let r=t.two.quickSplit(e.docs);for(let e=0;e{for(let a=0;a{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e)))[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ll=/'/;var ul=function(e,t){let n=e[t].normal.split(ll)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const cl=/'/;var hl=function(e,t){let n=e[t].normal.split(cl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var dl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const gl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ml={in:!0,by:!0,for:!0};var pl=(e,t)=>{let n=e[t];if(gl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!a.tags.has("Possessive")&&!(a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ml[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const fl=/'/,bl=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},vl={d:(e,t)=>hl(e,t),t:(e,t)=>dl(e,t),s:(e,t,n)=>pl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ul(e,t)},yl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var wl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===fl.test(a[o].normal)&&([,i]=a[o].normal.split(fl));let s=null;vl.hasOwnProperty(i)&&(s=vl[i](a,o,t)),s&&(s=yl(s,e),sl(n,[r,o],s),bl(n[r],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=il.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ol},hooks:["contractionTwo"]};const kl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Pl=["i","we","they"];let Al=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:kl+" #Person",tag:"Person",reason:"randy-smith"},{match:kl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${kl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Pl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Pl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Pl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let El=null;var jl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;El=El||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(r);return o.cache(),o.sweep(El),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Al}},hooks:["postTagger"]};var Il=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter((e,t)=>n.some(e=>a[t].has(e)))};var Nl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Il(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()}}};var Gl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var Dl=function(e,t,n){let a=this.match(`{${e}}`);return n&&(a=a.if(n)),a.has("#Verb")?Gl(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):this};var xl={api:function(e){e.prototype.swap=Dl}};m.plugin(nl),m.plugin(wl),m.plugin(jl),m.plugin(Nl),m.plugin(xl);export{m as default}; diff --git a/changelog.md b/changelog.md index f711a02e8..d4712423e 100644 --- a/changelog.md +++ b/changelog.md @@ -10,7 +10,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v --> -#### 14.4.0 [June 2021] +#### 14.4.0 [July 2021] - **[change]** - support root matches like '{walk}' work without doing .compute('root') - **[change]** - split numbers+units '12km' as contraction - #919 - **[new]** - `.lazy(txt, match)` fast-scan method [1](https://observablehq.com/@spencermountain/compromise-performance) @@ -19,6 +19,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[change]** - keep sentence caches, when still valid - **[change]** - alias nlp.compile() to .buildTrie() - **[fix]** - tagging fixes +- **[update]** - dependencies #### 14.3.1 [June 2021] - **[fix]** - missed caches in .sweep() diff --git a/package-lock.json b/package-lock.json index 0ca804a4a..7dae79055 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "compromise", - "version": "14.3.0", + "version": "14.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "compromise", - "version": "14.3.0", + "version": "14.4.0", "license": "MIT", "dependencies": { "efrt": "2.6.0", @@ -17,10 +17,10 @@ "@rollup/plugin-alias": "3.1.9", "@rollup/plugin-node-resolve": "13.3.0", "amble": "1.3.0", - "eslint": "8.17.0", + "eslint": "8.18.0", "eslint-plugin-regexp": "1.7.0", - "nlp-corpus": "4.3.0", - "rollup": "2.75.6", + "nlp-corpus": "4.4.0", + "rollup": "2.75.7", "rollup-plugin-filesize-check": "0.0.1", "rollup-plugin-terser": "7.0.2", "shelljs": "0.8.5", @@ -667,9 +667,9 @@ } }, "node_modules/eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -1695,9 +1695,9 @@ "dev": true }, "node_modules/nlp-corpus": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/nlp-corpus/-/nlp-corpus-4.3.0.tgz", - "integrity": "sha512-4KWYQfJrhvksqZmIYj/EEgTlaFCUWkN6ro/Z+5ISSckOkWmvOQki6hG6WRTOc135bUKQh0/3pUAyTGQN3kHXpg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/nlp-corpus/-/nlp-corpus-4.4.0.tgz", + "integrity": "sha512-1vOdUcAoOi1p85iZTC5SZWiIB1H3sDQxgyb4wTF0bZ9QgAVSJjl/Bck0lC5sG4quFgJ6Bz2K5mTaknhBlfEmvw==", "dev": true }, "node_modules/normalize-path": { @@ -1992,9 +1992,9 @@ } }, "node_modules/rollup": { - "version": "2.75.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz", - "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==", + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -3026,9 +3026,9 @@ "dev": true }, "eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", @@ -3816,9 +3816,9 @@ "dev": true }, "nlp-corpus": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/nlp-corpus/-/nlp-corpus-4.3.0.tgz", - "integrity": "sha512-4KWYQfJrhvksqZmIYj/EEgTlaFCUWkN6ro/Z+5ISSckOkWmvOQki6hG6WRTOc135bUKQh0/3pUAyTGQN3kHXpg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/nlp-corpus/-/nlp-corpus-4.4.0.tgz", + "integrity": "sha512-1vOdUcAoOi1p85iZTC5SZWiIB1H3sDQxgyb4wTF0bZ9QgAVSJjl/Bck0lC5sG4quFgJ6Bz2K5mTaknhBlfEmvw==", "dev": true }, "normalize-path": { @@ -4053,9 +4053,9 @@ } }, "rollup": { - "version": "2.75.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz", - "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==", + "version": "2.75.7", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", + "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", "dev": true, "requires": { "fsevents": "~2.3.2" diff --git a/package.json b/package.json index 11eda700b..838cdfb92 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Spencer Kelly (http://spencermounta.in)", "name": "compromise", "description": "modest natural language processing", - "version": "14.3.1", + "version": "14.4.0", "main": "./src/three.js", "unpkg": "./builds/compromise.js", "type": "module", @@ -97,10 +97,10 @@ "@rollup/plugin-alias": "3.1.9", "@rollup/plugin-node-resolve": "13.3.0", "amble": "1.3.0", - "eslint": "8.17.0", + "eslint": "8.18.0", "eslint-plugin-regexp": "1.7.0", - "nlp-corpus": "4.3.0", - "rollup": "2.75.6", + "nlp-corpus": "4.4.0", + "rollup": "2.75.7", "rollup-plugin-filesize-check": "0.0.1", "rollup-plugin-terser": "7.0.2", "shelljs": "0.8.5", diff --git a/scratch.js b/scratch.js index 84931675f..1181c2786 100644 --- a/scratch.js +++ b/scratch.js @@ -17,10 +17,3 @@ let doc // doc = nlp.lazy('one two three. four five six. seven foo eight nine.', 'foo #Value') // doc.debug() - - - - -doc = nlp(txt) -doc.debug() - diff --git a/src/_version.js b/src/_version.js index 7c99828e8..f847478dc 100644 --- a/src/_version.js +++ b/src/_version.js @@ -1 +1 @@ -export default '14.3.1' \ No newline at end of file +export default '14.4.0' \ No newline at end of file From e5e05b57f60241fdb71a0bd1327dc12d4f455310 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 1 Jul 2022 22:56:44 -0400 Subject: [PATCH 22/27] add version to dates plugin --- plugins/dates/package.json | 3 ++- plugins/dates/scratch.js | 4 +++- plugins/dates/scripts/version.js | 6 ++++++ plugins/dates/src/_version.js | 1 + plugins/dates/src/api/normalize.js | 6 ++++-- plugins/dates/src/plugin.js | 5 ++++- scratch.js | 9 +++++---- 7 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 plugins/dates/scripts/version.js create mode 100644 plugins/dates/src/_version.js diff --git a/plugins/dates/package.json b/plugins/dates/package.json index c468443f0..e3ad3b941 100644 --- a/plugins/dates/package.json +++ b/plugins/dates/package.json @@ -25,7 +25,8 @@ "testb": "TESTENV=prod tape \"./tests/**/*.test.js\" | tap-dancer --color always", "watch": "amble ./scratch.js", "perf": "node ./scripts/perf.js", - "build": "rollup -c --silent" + "version": "node ./scripts/version.js", + "build": "npm run version && rollup -c --silent" }, "files": [ "builds/", diff --git a/plugins/dates/scratch.js b/plugins/dates/scratch.js index a0ec69a6c..b250f2a5d 100644 --- a/plugins/dates/scratch.js +++ b/plugins/dates/scratch.js @@ -2,7 +2,9 @@ import nlp from '../../src/three.js' import spacetime from 'spacetime' -import datePlugin from './src/plugin.js' +// import datePlugin from './src/plugin.js' +import datePlugin from './builds/compromise-dates.mjs' +console.log(datePlugin) nlp.plugin(datePlugin) // nlp.verbose('tagger') // nlp.verbose('date') diff --git a/plugins/dates/scripts/version.js b/plugins/dates/scripts/version.js new file mode 100644 index 000000000..5d0ea2cfe --- /dev/null +++ b/plugins/dates/scripts/version.js @@ -0,0 +1,6 @@ +import fs from 'fs' +// avoid requiring our whole package.json file +// make a small file for our version number +let pkg = JSON.parse(fs.readFileSync('./package.json').toString()) + +fs.writeFileSync('./src/_version.js', `export default '${pkg.version}'`) diff --git a/plugins/dates/src/_version.js b/plugins/dates/src/_version.js new file mode 100644 index 000000000..5c24f8486 --- /dev/null +++ b/plugins/dates/src/_version.js @@ -0,0 +1 @@ +export default '3.4.0' \ No newline at end of file diff --git a/plugins/dates/src/api/normalize.js b/plugins/dates/src/api/normalize.js index bbb29111b..5928737c2 100644 --- a/plugins/dates/src/api/normalize.js +++ b/plugins/dates/src/api/normalize.js @@ -15,7 +15,7 @@ const normalize = function (doc) { } if (!doc.numbers) { - console.warn(`Warning: compromise-numbers plugin is not loaded.\n You should load this plugin \n - https://bit.ly/3t8RfFG`) //eslint-disable-line + console.warn(`Warning: compromise .numbers() not loaded.\n This plugin requires >= v14`) //eslint-disable-line } else { // doc.numbers().normalize() // convert 'two' to 2 @@ -24,7 +24,9 @@ const normalize = function (doc) { num.toCardinal(false) } // expand 'aug 20-21' - doc.contractions().expand() + if (doc.contractions) { + doc.contractions().expand() + } // remove adverbs doc.adverbs().remove() // 'week-end' diff --git a/plugins/dates/src/plugin.js b/plugins/dates/src/plugin.js index f84aecc68..6ef856715 100644 --- a/plugins/dates/src/plugin.js +++ b/plugins/dates/src/plugin.js @@ -3,6 +3,8 @@ import compute from './compute/index.js' import tags from './model/tags.js' import words from './model/words/index.js' import regex from './model/regex.js' +import version from './_version.js' + // import matches from './compute/matches.js' export default { @@ -16,5 +18,6 @@ export default { // net = net || methods.one.buildNet(matches, world) // world.model.two.matches = world.model.two.matches.concat(matches) }, - hooks: ['dates'] + hooks: ['dates'], + version } \ No newline at end of file diff --git a/scratch.js b/scratch.js index 1181c2786..6cca2df18 100644 --- a/scratch.js +++ b/scratch.js @@ -1,13 +1,14 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/three.js' -// import plg from './plugins/speed/src/plugin.js' -// nlp.plugin(plg) +import nlp from './src/one.js' +import plg from './plugins/dates/src/plugin.js' +nlp.plugin(plg) nlp.verbose('tagger') let txt = '' let doc -// doc = nlp('33 kilos').debug() +doc = nlp('jan 4th').debug() +doc.dates().debug() // doc = doc.match('33 km').debug() // doc = nlp('he sweetly sang').debug() From f600ecd7f8ad1ab7ce49ebebec9116562c06d51b Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Sat, 2 Jul 2022 10:21:29 -0400 Subject: [PATCH 23/27] new speed build --- plugins/speed/builds/compromise-speed.cjs | 1619 +++++++++++------- plugins/speed/builds/compromise-speed.min.js | 4 +- plugins/speed/builds/compromise-speed.mjs | 4 +- plugins/speed/package.json | 7 +- plugins/speed/scripts/version.js | 6 + plugins/speed/src/_version.js | 1 + plugins/speed/src/keypress/index.js | 2 +- plugins/speed/src/plugin.js | 2 + plugins/speed/src/stream/streamFile.js | 6 +- plugins/speed/src/workerPool/rip.js | 4 +- 10 files changed, 1014 insertions(+), 641 deletions(-) create mode 100644 plugins/speed/scripts/version.js create mode 100644 plugins/speed/src/_version.js diff --git a/plugins/speed/builds/compromise-speed.cjs b/plugins/speed/builds/compromise-speed.cjs index de462bf90..8bb9835cc 100644 --- a/plugins/speed/builds/compromise-speed.cjs +++ b/plugins/speed/builds/compromise-speed.cjs @@ -30,7 +30,7 @@ const streamFile = function (path, fn, opts = {}) { const nlp = this; - let model = nlp.model(); + let world = nlp.world(); const splitSentences = nlp.methods().one.tokenize.splitSentences; const s = fs__namespace.createReadStream(path, opts); @@ -47,7 +47,7 @@ const quickSplit = function (str) { let end = txt.substring(str.length - 300); - let arr = splitSentences(end, model); + let arr = splitSentences(end, world); let last = arr[arr.length - 1]; let main = str.substr(0, str.length - last.length); return [main, last] @@ -89,7 +89,7 @@ const keyPress = function (text, lex, opts = {}) { const nlp = this; const splitSentences = this.methods().one.tokenize.splitSentences; - let arr = splitSentences(text, this.model()); + let arr = splitSentences(text, this.world()); let list = []; arr.forEach(str => { @@ -127,7 +127,7 @@ return nlp(list) }; - var index$2 = { + var keyPress$1 = { lib: { keyPress } @@ -140,7 +140,7 @@ four: {}, }; - let model$8 = { + let model$7 = { one: {}, two: {}, three: {}, @@ -148,9 +148,9 @@ let compute$d = {}; let hooks = []; - var tmpWrld = { methods: methods$o, model: model$8, compute: compute$d, hooks }; + var tmpWrld = { methods: methods$o, model: model$7, compute: compute$d, hooks }; - const isArray$a = input => Object.prototype.toString.call(input) === '[object Array]'; + const isArray$9 = input => Object.prototype.toString.call(input) === '[object Array]'; const fns$5 = { /** add metadata to term objects */ @@ -162,8 +162,14 @@ compute[input](this); } // allow a list of methods - else if (isArray$a(input)) { - input.forEach(name => world.compute.hasOwnProperty(name) && compute[name](this)); + else if (isArray$9(input)) { + input.forEach(name => { + if (world.compute.hasOwnProperty(name)) { + compute[name](this); + } else { + console.warn('no compute:', input); // eslint-disable-line + } + }); } // allow a custom compute function else if (typeof input === 'function') { @@ -176,6 +182,8 @@ }; var compute$c = fns$5; + // wrappers for loops in javascript arrays + const forEach = function (cb) { let ptrs = this.fullPointer; ptrs.forEach((ptr, i) => { @@ -187,11 +195,14 @@ const map = function (cb, empty) { let ptrs = this.fullPointer; - // let cache = this._cache || [] let res = ptrs.map((ptr, i) => { let view = this.update([ptr]); - // view._cache = cache[i] - return cb(view, i) + let out = cb(view, i); + // if we returned nothing, return a view + if (out === undefined) { + return this.none() + } + return out }); if (res.length === 0) { return empty || this.update([]) @@ -218,23 +229,18 @@ const filter = function (cb) { let ptrs = this.fullPointer; - // let cache = this._cache || [] ptrs = ptrs.filter((ptr, i) => { let view = this.update([ptr]); - // view._cache = cache[i] return cb(view, i) }); - let res = this.update(ptrs); //TODO: keep caches automatically - // res._cache = ptrs.map(ptr => cache[ptr[0]]) + let res = this.update(ptrs); return res }; const find$c = function (cb) { let ptrs = this.fullPointer; - // let cache = this._cache || [] let found = ptrs.find((ptr, i) => { let view = this.update([ptr]); - // view._cache = cache[i] return cb(view, i) }); return this.update([found]) @@ -242,10 +248,8 @@ const some = function (cb) { let ptrs = this.fullPointer; - // let cache = this._cache || [] return ptrs.some((ptr, i) => { let view = this.update([ptr]); - // view._cache = cache[i] return cb(view, i) }) }; @@ -270,15 +274,16 @@ }, /** return individual terms*/ terms: function (n) { + let m = this.match('.'); // this is a bit faster than .match('.') - let ptrs = []; - this.docs.forEach((terms) => { - terms.forEach((term) => { - let [y, x] = term.index || []; - ptrs.push([y, x, x + 1]); - }); - }); - let m = this.update(ptrs); + // let ptrs = [] + // this.docs.forEach((terms) => { + // terms.forEach((term) => { + // let [y, x] = term.index || [] + // ptrs.push([y, x, x + 1]) + // }) + // }) + // let m = this.update(ptrs) return typeof n === 'number' ? m.eq(n) : m }, @@ -298,14 +303,11 @@ /** */ eq: function (n) { let ptr = this.pointer; - let cache = this._cache || []; if (!ptr) { ptr = this.docs.map((_doc, i) => [i]); } if (ptr[n]) { - let view = this.update([ptr[n]]); - view._cache = cache[n]; - return view + return this.update([ptr[n]]) } return this.none() }, @@ -464,31 +466,27 @@ update(pointer) { let m = new View(this.document, pointer); // send the cache down, too? - if (m._cache && pointer && pointer.length > 1) { - // only if it's full + if (this._cache && pointer && pointer.length > 0) { + // only keep cache if it's a full-sentence let cache = []; - pointer.forEach(ptr => { + pointer.forEach((ptr, i) => { + let [n, start, end] = ptr; if (ptr.length === 1) { - cache.push(m._cache[ptr[0]]); + cache[i] = this._cache[n]; + } else if (start === 0 && this.document[n].length === end) { + cache[i] = this._cache[n]; } - // let [n, start, end] = ptr - // if (start === 0 && this.document[n][end - 1] && !this.document[n][end]) { - // console.log('=-=-=-= here -=-=-=-') - // } }); - m._cache = cache; + if (cache.length > 0) { + m._cache = cache; + } } m.world = this.world; return m } // create a new View, from this one toView(pointer) { - if (pointer === undefined) { - pointer = this.pointer; - } - let m = new View(this.document, pointer); - // m._cache = this._cache // share this full thing - return m + return new View(this.document, pointer || this.pointer) } fromText(input) { const { methods } = this; @@ -496,8 +494,10 @@ let document = methods.one.tokenize.fromString(input, this.world); let doc = new View(document); doc.world = this.world; - // doc.compute(world.hooks) - doc.compute(['normal', 'lexicon', 'preTagger']); + doc.compute(['normal', 'lexicon']); + if (this.world.compute.preTagger) { + doc.compute('preTagger'); + } return doc } clone() { @@ -520,7 +520,7 @@ Object.assign(View.prototype, api$y); var View$1 = View; - var version = '14.2.0-rc2'; + var version = '14.4.0'; const isObject$6 = function (item) { return item && typeof item === 'object' && !Array.isArray(item) @@ -603,7 +603,7 @@ return Object.prototype.toString.call(val) === '[object Object]' }; - const isArray$9 = function (arr) { + const isArray$8 = function (arr) { return Object.prototype.toString.call(arr) === '[object Array]' }; @@ -611,7 +611,7 @@ const fromJson = function (json) { return json.map(o => { return o.terms.map(term => { - if (isArray$9(term.tags)) { + if (isArray$8(term.tags)) { term.tags = new Set(term.tags); } return term @@ -656,9 +656,9 @@ return new View(input.document, input.ptrs) } // handle json input - if (isArray$9(input)) { + if (isArray$8(input)) { // pre-tokenized array-of-arrays - if (isArray$9(input[0])) { + if (isArray$8(input[0])) { let document = preTokenized(input); return new View(document) } @@ -670,20 +670,20 @@ }; var handleInputs = inputs; - let world = Object.assign({}, tmpWrld); + let world$1 = Object.assign({}, tmpWrld); const nlp = function (input, lex) { if (lex) { nlp.addWords(lex); } - let doc = handleInputs(input, View$1, world); + let doc = handleInputs(input, View$1, world$1); if (input) { - doc.compute(world.hooks); + doc.compute(world$1.hooks); } return doc }; Object.defineProperty(nlp, '_world', { - value: world, + value: world$1, writable: true, }); @@ -695,7 +695,7 @@ nlp.addWords(lex); } // run the tokenizer - let doc = handleInputs(input, View$1, world); + let doc = handleInputs(input, View$1, world$1); // give contractions a shot, at least if (compute.contractions) { doc.compute(['alias', 'normal', 'machine', 'contractions']); //run it if we've got it @@ -703,7 +703,6 @@ return doc }; - /** extend compromise functionality */ nlp.plugin = function (plugin) { extend$1(plugin, this._world, View$1, this); @@ -752,6 +751,9 @@ if (term.machine) { stuff.add(term.machine); } + if (term.root) { + stuff.add(term.root); + } // cache slashes words, etc if (term.alias) { term.alias.forEach(str => stuff.add(str)); @@ -796,7 +798,7 @@ } }; - var cache$3 = { + var cache$1 = { api: api$x, compute: compute$b, methods: methods$m, @@ -956,7 +958,7 @@ TTT|NNN|II|R - TTT -> 46 seconds since load + TTT -> 46 terms since load NNN -> 46 thousand sentences (>1 inf-jest) II -> 1,200 words in a sentence (nuts) R -> 1-36 random number @@ -976,7 +978,7 @@ after 46-thousand sentences */ - const start$1 = new Date().getTime(); + let index$2 = 0; const pad3 = (str) => { str = str.length < 3 ? '0' + str : str; @@ -985,18 +987,17 @@ const toId = function (term) { let [n, i] = term.index || [0, 0]; - var now = new Date().getTime() - start$1; - now = parseInt(now, 10); + index$2 += 1; - //don't overflow time - now = now > 46655 ? 46655 : now; + //don't overflow index + index$2 = index$2 > 46655 ? 0 : index$2; //don't overflow sentences - n = n > 46655 ? 46655 : n; + n = n > 46655 ? 0 : n; // //don't overflow terms - i = i > 1294 ? 1294 : i; + i = i > 1294 ? 0 : i; // 3 digits for time - let id = pad3(now.toString(36)); + let id = pad3(index$2.toString(36)); // 3 digit for sentence index (46k) id += pad3(n.toString(36)); @@ -1025,7 +1026,7 @@ } }; - const isArray$8 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; + const isArray$7 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; // set new ids for each terms const addIds$2 = function (terms) { @@ -1047,14 +1048,15 @@ return input.clone().docs[0] //assume one sentence } //allow an array of terms, too - if (isArray$8(input)) { - return isArray$8(input[0]) ? input[0] : input + if (isArray$7(input)) { + return isArray$7(input[0]) ? input[0] : input } return [] }; const insert = function (input, view, prepend) { const { document, world } = view; + view.uncache(); // insert words at end of each doc let ptrs = view.fullPointer; let selfPtrs = view.fullPointer; @@ -1086,7 +1088,10 @@ // shift our self pointer, if necessary view.ptrs = selfPtrs; // try to tag them, too - doc.compute(['id', 'index', 'lexicon', 'preTagger']); + doc.compute(['id', 'index', 'lexicon']); + if (doc.world.compute.preTagger) { + doc.compute('preTagger'); + } return doc }; @@ -1140,6 +1145,7 @@ fns$3.replaceWith = function (input, keep = {}) { let ptrs = this.fullPointer; let main = this; + this.uncache(); if (typeof input === 'function') { return replaceByFn(main, input) } @@ -1161,7 +1167,10 @@ // delete the original terms main.delete(original); //science. // what should we return? - let m = main.toView(ptrs).compute(['index', 'lexicon', 'preTagger']); + let m = main.toView(ptrs).compute(['index', 'lexicon']); + if (m.world.compute.preTagger) { + m.compute('preTagger'); + } // replace any old tags if (keep.tags) { m.terms().forEach((term, i) => { @@ -1282,6 +1291,7 @@ /** */ remove: function (reg) { const { indexN } = this.methods.one.pointer; + this.uncache(); // two modes: // - a. remove self, from full parent let self = this.all(); @@ -1313,7 +1323,6 @@ this.ptrs = []; return self.none() } - // self._cache = null let res = self.toView(ptrs); //return new document return res }, @@ -1428,7 +1437,7 @@ methods$j.deHyphenate = methods$j.dehyphenate; methods$j.toQuotation = methods$j.toQuotations; - var whitespace$1 = methods$j; + var whitespace = methods$j; /** alphabetical order */ const alpha = (a, b) => { @@ -1520,6 +1529,7 @@ /** re-arrange the order of the matches (in place) */ const sort = function (input) { let { docs, pointer } = this; + this.uncache(); if (typeof input === 'function') { return customSort(this, input) } @@ -1559,6 +1569,9 @@ let ptrs = this.pointer || this.docs.map((_d, n) => [n]); ptrs = [].concat(ptrs); ptrs = ptrs.reverse(); + if (this._cache) { + this._cache = this._cache.reverse(); + } return this.update(ptrs) }; @@ -1579,7 +1592,7 @@ var sort$1 = { unique, reverse: reverse$2, sort }; - const isArray$7 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; + const isArray$6 = (arr) => Object.prototype.toString.call(arr) === '[object Array]'; // append a new document, somehow const combineDocs = function (homeDocs, inputDocs) { @@ -1625,7 +1638,7 @@ return combineViews(this, input) } // assume it's an array of terms - if (isArray$7(input)) { + if (isArray$6(input)) { let docs = combineDocs(this.document, input); this.document = docs; return this.all() @@ -1651,7 +1664,7 @@ }; var harden$1 = { harden, soften }; - const methods$h = Object.assign({}, caseFns, insert$1, replace, remove, whitespace$1, sort$1, concat, harden$1); + const methods$h = Object.assign({}, caseFns, insert$1, replace, remove, whitespace, sort$1, concat, harden$1); const addAPI$2 = function (View) { Object.assign(View.prototype, methods$h); @@ -1691,6 +1704,9 @@ { word: "shan't", out: ['should', 'not'] }, { word: "won't", out: ['will', 'not'] }, { word: "that's", out: ['that', 'is'] }, + { word: "what's", out: ['what', 'is'] }, + { word: "let's", out: ['let', 'us'] }, + { word: "there's", out: ['there', 'is'] }, { word: 'dunno', out: ['do', 'not', 'know'] }, { word: 'gonna', out: ['going', 'to'] }, { word: 'gotta', out: ['have', 'got', 'to'] }, //hmm @@ -1733,7 +1749,7 @@ { before: 't', out: ['tu'] }, // t'aime ]; - var model$7 = { one: { contractions: contractions$3 } }; + var model$6 = { one: { contractions: contractions$3 } }; // put n new words where 1 word was const insertContraction$1 = function (document, point, words) { @@ -1741,13 +1757,14 @@ if (!words || words.length === 0) { return } - words = words.map((word) => { + words = words.map((word, i) => { word.implicit = word.text; word.machine = word.text; word.pre = ''; word.post = ''; word.text = ''; word.normal = ''; + word.index = [n, w + i]; return word }); if (words[0]) { @@ -1876,16 +1893,18 @@ preD, }; - const isRange = /^([0-9.]{1,3}[a-z]{0,2}) ?[-–—] ?([0-9]{1,3}[a-z]{0,2})$/i; + const isRange = /^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i; const timeRange = /^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i; + const phoneNum = /^[0-9]{3}-[0-9]{4}$/; const numberRange = function (terms, i) { let term = terms[i]; - if (term.tags.has('PhoneNumber') === true) { - return null - } let parts = term.text.match(isRange); if (parts !== null) { + // 123-1234 is a phone number, not a number-range + if (term.tags.has('PhoneNumber') === true || phoneNum.test(term.text)) { + return null + } return [parts[1], 'to', parts[2]] } else { parts = term.text.match(timeRange); @@ -1897,6 +1916,34 @@ }; var numberRange$1 = numberRange; + const numUnit = /^([0-9.,+-]+)([a-z°²³µ/]+)$/i; + + const notUnit = new Set([ + 'st', + 'nd', + 'rd', + 'th', + 'am', + 'pm', + 'max' + ]); + + const numberUnit = function (terms, i) { + let term = terms[i]; + let parts = term.text.match(numUnit); + if (parts !== null) { + // is it a recognized unit, like 'km'? + let unit = parts[2].toLowerCase().trim(); + // don't split '3rd' + if (notUnit.has(unit)) { + return null + } + return [parts[1], unit] //split it + } + return null + }; + var numberUnit$1 = numberUnit; + const byApostrophe$1 = /'/; const numDash = /^[0-9][^-–—]*[-–—].*?[0-9]/; @@ -1913,7 +1960,6 @@ end += 1; } tmp.ptrs = [[0, start, end]]; - tmp.compute(['lexicon', 'preTagger', 'index']); }; const byEnd$1 = { @@ -1954,7 +2000,9 @@ }; const toDocs$1 = function (words, view) { - return view.fromText(words.join(' ')).docs[0] + let doc = view.fromText(words.join(' ')); + doc.compute(['id', 'alias']); + return doc.docs[0] }; //really easy ones @@ -1962,6 +2010,7 @@ let { world, document } = view; const { model, methods } = world; let list = model.one.contractions || []; + new Set(model.one.units || []); // each sentence document.forEach((terms, n) => { // loop through terms backwards @@ -1997,10 +2046,18 @@ methods.one.setTag(words, 'NumberRange', world);//add custom tag // is it a time-range, like '5-9pm' if (words[2] && words[2].tags.has('Time')) { - methods.one.setTag([words[0]], 'Time', world); + methods.one.setTag([words[0]], 'Time', world, null, 'time-range'); } reTag$1(document[n], view, i, words.length); } + continue + } + // split-apart '4km' + words = numberUnit$1(terms, i); + if (words) { + words = toDocs$1(words, view); + splice$1(document, [n, i], words); + methods.one.setTag([words[1]], 'Unit', world, null, 'contraction-unit'); } } }); @@ -2009,12 +2066,12 @@ var compute$8 = { contractions: contractions$2 }; - const plugin$5 = { - model: model$7, + const plugin$4 = { + model: model$6, compute: compute$8, hooks: ['contractions'], }; - var contractions = plugin$5; + var contractions = plugin$4; // scan-ahead to match multiple-word terms - 'jack rabbit' const checkMulti = function (terms, i, lexicon, setTag, world) { @@ -2101,7 +2158,7 @@ // tag any words in our lexicon - even if it hasn't been filled-up yet // rest of pre-tagger is in ./two/preTagger - const firstPass = function (view) { + const lexicon$3 = function (view) { const world = view.world; view.docs.forEach(terms => { for (let i = 0; i < terms.length; i += 1) { @@ -2116,7 +2173,7 @@ }; var compute$7 = { - lexicon: firstPass + lexicon: lexicon$3 }; // derive clever things from our lexicon key-value pairs @@ -2125,12 +2182,12 @@ let lex = {}; // console.log('start:', Object.keys(lex).length) let _multi = {}; - // go through each word in this key-value obj: Object.keys(words).forEach(word => { let tag = words[word]; // normalize lexicon a little bit word = word.toLowerCase().trim(); + word = word.replace(/'s\b/, ''); // cache multi-word terms let split = word.split(/ /); if (split.length > 1) { @@ -2184,7 +2241,7 @@ var lib$5 = { addWords }; - const model$6 = { + const model$5 = { one: { lexicon: {}, //setup blank lexicon _multiCache: {}, @@ -2192,7 +2249,7 @@ }; var lexicon$2 = { - model: model$6, + model: model$5, methods: methods$g, compute: compute$7, lib: lib$5, @@ -2389,11 +2446,13 @@ /** pre-compile a list of matches to lookup */ const lib$4 = { /** turn an array or object into a compressed trie*/ - compile: function (input) { + buildTrie: function (input) { const trie = build(input, this.world()); return compress$1(trie) } }; + // add alias + lib$4.compile = lib$4.buildTrie; var lookup = { api: api$v, @@ -2447,6 +2506,19 @@ // return false // } + const parseRegs = function (regs, opts, world) { + const one = world.methods.one; + if (typeof regs === 'number') { + regs = String(regs); + } + // support param as string + if (typeof regs === 'string') { + regs = one.killUnicode(regs, world); + regs = one.parseMatch(regs, opts, world); + } + return regs + }; + const match$2 = function (regs, group, opts) { const one = this.methods.one; // support param as view object @@ -2457,25 +2529,12 @@ if (isNet(regs)) { return this.sweep(regs, { tagger: false }).view.settle() } - // support param as string - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world); - regs = one.parseMatch(regs, opts); - } + regs = parseRegs(regs, opts, this.world); let todo = { regs, group }; let res = one.match(this.docs, todo, this._cache); let { ptrs, byGroup } = fixPointers(res, this.fullPointer); let view = this.toView(ptrs); view._groups = byGroup; - // try to keep some of the cache - // if (this._cache) { - // view._cache = view.ptrs.map(ptr => { - // if (isFull(ptr, this.document)) { - // return this._cache[ptr[0]] - // } - // return null - // }) - // } return view }; @@ -2489,10 +2548,7 @@ if (isNet(regs)) { return this.sweep(regs, { tagger: false, matchOne: true }).view } - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world); - regs = one.parseMatch(regs, opts); - } + regs = parseRegs(regs, opts, this.world); let todo = { regs, group, justOne: true }; let res = one.match(this.docs, todo, this._cache); let { ptrs, byGroup } = fixPointers(res, this.fullPointer); @@ -2512,10 +2568,7 @@ if (isNet(regs)) { return this.sweep(regs, { tagger: false }).view.found } - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world); - regs = one.parseMatch(regs, opts); - } + regs = parseRegs(regs, opts, this.world); let todo = { regs, group, justOne: true }; let ptrs = one.match(this.docs, todo, this._cache).ptrs; return ptrs.length > 0 @@ -2533,10 +2586,7 @@ let m = this.sweep(regs, { tagger: false }).view.settle(); return this.if(m)//recurse with result } - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world); - regs = one.parseMatch(regs, opts); - } + regs = parseRegs(regs, opts, this.world); let todo = { regs, group, justOne: true }; let ptrs = this.fullPointer; let cache = this._cache || []; @@ -2566,10 +2616,7 @@ return this.ifNo(m) } // otherwise parse the match string - if (typeof regs === 'string') { - regs = one.killUnicode(regs, this.world); - regs = one.parseMatch(regs, opts); - } + regs = parseRegs(regs, opts, this.world); let cache = this._cache || []; let view = this.filter((m, i) => { let todo = { regs, group, justOne: true }; @@ -2625,7 +2672,7 @@ const growLeft = function (regs, group, opts) { if (typeof regs === 'string') { - regs = this.world.methods.one.parseMatch(regs, opts); + regs = this.world.methods.one.parseMatch(regs, opts, this.world); } regs[regs.length - 1].end = true;// ensure matches are beside us ← let ptrs = this.fullPointer; @@ -2642,7 +2689,7 @@ const growRight = function (regs, group, opts) { if (typeof regs === 'string') { - regs = this.world.methods.one.parseMatch(regs, opts); + regs = this.world.methods.one.parseMatch(regs, opts, this.world); } regs[0].start = true;// ensure matches are beside us → let ptrs = this.fullPointer; @@ -2663,16 +2710,16 @@ var lookaround = { before, after, growLeft, growRight, grow }; - const combine$1 = function (left, right) { + const combine = function (left, right) { return [left[0], left[1], right[2]] }; - const isArray$6 = function (arr) { + const isArray$5 = function (arr) { return Object.prototype.toString.call(arr) === '[object Array]' }; const getDoc$3 = (reg, view, group) => { - if (typeof reg === 'string' || isArray$6(reg)) { + if (typeof reg === 'string' || isArray$5(reg)) { return view.match(reg, group) } if (!reg) { @@ -2721,7 +2768,7 @@ res.push(o.before); if (o.match && o.after) { // console.log(combine(o.match, o.after)) - res.push(combine$1(o.match, o.after)); + res.push(combine(o.match, o.after)); } else { res.push(o.match); res.push(o.after); @@ -2741,7 +2788,7 @@ all.forEach(o => { res.push(o.passthrough); if (o.before && o.match) { - res.push(combine$1(o.before, o.match)); + res.push(combine(o.before, o.match)); } else { res.push(o.before); res.push(o.match); @@ -2821,7 +2868,7 @@ const hasMinMax = /\{([0-9]+)?(, *[0-9]*)?\}/; const andSign = /&&/; - // const hasDash = /\p{Letter}-\p{Letter}/u + // const hasDash = /\p{Letter}[-–—]\p{Letter}/u const captureName = new RegExp(/^<\s*(\S+)\s*>/); /* break-down a match expression into this: { @@ -2948,14 +2995,24 @@ return obj } - //machine/sense overloaded + //root/sense overloaded if (start(w) === '{' && end(w) === '}') { w = stripBoth(w); + obj.id = w; + obj.root = w; if (/\//.test(w)) { - obj.sense = w; - obj.greedy = true; - } else { - obj.machine = w; + let split = obj.root.split(/\//); + obj.root = split[0]; + obj.pos = split[1]; + if (obj.pos === 'adj') { + obj.pos = 'Adjective'; + } + // titlecase + obj.pos = obj.pos.charAt(0).toUpperCase() + obj.pos.substr(1).toLowerCase(); + // add sense-number too + if (split[2] !== undefined) { + obj.num = split[2]; + } } return obj } @@ -3032,15 +3089,92 @@ } else { w = w.toLowerCase(); } - // if (hasDash.test(w) === true) { - // w = w.replace(/-/g, '') - // } obj.word = w; } return obj }; var parseToken$1 = parseToken; + const hasDash$2 = /[a-z0-9][-–—][a-z]/i; + + // match 're-do' -> ['re','do'] + const splitHyphens$1 = function (regs, world) { + let prefixes = world.model.one.prefixes; + for (let i = regs.length - 1; i >= 0; i -= 1) { + let reg = regs[i]; + if (reg.word && hasDash$2.test(reg.word)) { + let words = reg.word.split(/[-–—]/g); + // don't split 're-cycle', etc + if (prefixes.hasOwnProperty(words[0])) { + continue + } + words = words.filter(w => w).reverse(); + regs.splice(i, 1); + words.forEach(w => { + let obj = Object.assign({}, reg); + obj.word = w; + regs.splice(i, 0, obj); + }); + } + } + return regs + }; + var splitHyphens$2 = splitHyphens$1; + + const addVerbs = function (token, world) { + let { verbConjugate } = world.methods.two.transform; + let res = verbConjugate(token.root, world.model); + delete res.FutureTense; + return Object.values(res).filter(str => str) + }; + + const addNoun = function (token, world) { + let { nounToPlural } = world.methods.two.transform; + let res = [token.root]; + res.push(nounToPlural(token.root, world.model)); + return res + }; + + const addAdjective = function (token, world) { + let { adjToSuperlative, adjToComparative, adjToAdverb } = world.methods.two.transform; + let res = [token.root]; + res.push(adjToSuperlative(token.root, world.model)); + res.push(adjToComparative(token.root, world.model)); + res.push(adjToAdverb(token.root, world.model)); + return res + }; + + // turn '{walk}' into 'walking', 'walked', etc + const inflectRoot = function (regs, world) { + // do we have compromise/two? + if (world.methods.two && world.methods.two.transform) { + regs = regs.map(token => { + // a reg to convert '{foo}' + if (token.root) { + let choices = []; + if (!token.pos || token.pos === 'Verb') { + choices = choices.concat(addVerbs(token, world)); + } + if (!token.pos || token.pos === 'Noun') { + choices = choices.concat(addNoun(token, world)); + } + // don't run these by default + if (!token.pos || token.pos === 'Adjective') { + choices = choices.concat(addAdjective(token, world)); + } + choices = choices.filter(str => str); + if (choices.length > 0) { + token.operator = 'or'; + token.fastOr = new Set(choices); + } + } + return token + }); + } + return regs + }; + var inflectRoot$1 = inflectRoot; + // name any [unnamed] capture-groups with a number const nameGroups = function (regs) { let index = 0; @@ -3135,17 +3269,22 @@ var postProcess$1 = postProcess; /** parse a match-syntax string into json */ - const syntax = function (input, opts = {}) { + const syntax = function (input, opts, world) { // fail-fast if (input === null || input === undefined || input === '') { return [] } + opts = opts || {}; if (typeof input === 'number') { input = String(input); //go for it? } let tokens = parseBlocks$1(input); //turn them into objects tokens = tokens.map(str => parseToken$1(str, opts)); + // '~re-do~' + tokens = splitHyphens$2(tokens, world); + // '{walk}' + tokens = inflectRoot$1(tokens, world); //clean up anything weird tokens = postProcess$1(tokens); // console.log(tokens) @@ -3401,6 +3540,10 @@ } // support optimized (one|two) if (reg.fastOr !== undefined) { + // {work/verb} must be a verb + if (reg.pos && !term.tags.has(reg.pos)) { + return null + } return reg.fastOr.has(term.implicit) || reg.fastOr.has(term.normal) || reg.fastOr.has(term.text) || reg.fastOr.has(term.machine) } //support slower (one|two) @@ -3527,7 +3670,7 @@ }; var doAstrix$1 = doAstrix; - const isArray$5 = function (arr) { + const isArray$4 = function (arr) { return Object.prototype.toString.call(arr) === '[object Array]' }; @@ -3538,7 +3681,7 @@ for (let c = 0; c < block.choices.length; c += 1) { // try to match this list of tokens let regs = block.choices[c]; - if (!isArray$5(regs)) { + if (!isArray$4(regs)) { return false } wasFound = regs.every((cr, w_index) => { @@ -4059,7 +4202,7 @@ if (killUnicode) { str = killUnicode(str, world); } - return world.methods.one.parseMatch(str, opts) + return world.methods.one.parseMatch(str, opts, world) } }; @@ -4275,6 +4418,80 @@ fmts.reduced = fmts.root; var fmts$1 = fmts; + /* eslint-disable no-bitwise */ + /* eslint-disable no-mixed-operators */ + /* eslint-disable no-multi-assign */ + + // https://github.com/jbt/tiny-hashes/ + let k = [], i$1 = 0; + for (; i$1 < 64;) { + k[i$1] = 0 | Math.sin(++i$1 % Math.PI) * 4294967296; + } + + function md5(s) { + let b, c, d, + h = [b = 0x67452301, c = 0xEFCDAB89, ~b, ~c], + words = [], + j = decodeURI(encodeURI(s)) + '\x80', + a = j.length; + + s = (--a / 4 + 2) | 15; + + words[--s] = a * 8; + + for (; ~a;) { + words[a >> 2] |= j.charCodeAt(a) << 8 * a--; + } + + for (i$1 = j = 0; i$1 < s; i$1 += 16) { + a = h; + + for (; j < 64; + a = [ + d = a[3], + ( + b + + ((d = + a[0] + + [ + b & c | ~b & d, + d & b | ~d & c, + b ^ c ^ d, + c ^ (b | ~d) + ][a = j >> 4] + + k[j] + + ~~words[i$1 | [ + j, + 5 * j + 1, + 3 * j + 5, + 7 * j + ][a] & 15] + ) << (a = [ + 7, 12, 17, 22, + 5, 9, 14, 20, + 4, 11, 16, 23, + 6, 10, 15, 21 + ][4 * a + j++ % 4]) | d >>> -a) + ), + b, + c + ] + ) { + b = a[1] | 0; + c = a[2]; + } + for (j = 4; j;) h[--j] += a[j]; + } + + for (s = ''; j < 32;) { + s += ((h[j >> 3] >> ((1 ^ j++) * 4)) & 15).toString(16); + } + + return s; + } + + // console.log(md5('food-safety')) + const defaults$2 = { text: true, terms: true, @@ -4287,15 +4504,15 @@ }; const fns$2 = { - text: (terms) => { - return textFromTerms(terms, { keepPunct: true }, false) - }, + text: (terms) => textFromTerms(terms, { keepPunct: true }, false), normal: (terms) => textFromTerms(terms, merge(fmts$1.normal, { keepPunct: true }), false), implicit: (terms) => textFromTerms(terms, merge(fmts$1.implicit, { keepPunct: true }), false), machine: (terms) => textFromTerms(terms, opts, false), root: (terms) => textFromTerms(terms, merge(opts, { form: 'root' }), false), + hash: (terms) => md5(textFromTerms(terms, { keepPunct: true }, false)), + offset: (terms) => { let len = fns$2.text(terms).length; return { @@ -4600,9 +4817,15 @@ if (method === 'normal') { return this.text('normal') } + if (method === 'root') { + return this.text('root') + } if (method === 'machine' || method === 'reduced') { return this.text('machine') } + if (method === 'hash' || method === 'md5') { + return md5(this.text()) + } // json data formats if (method === 'json') { @@ -4700,6 +4923,11 @@ var output = { api: api$t, + methods: { + one: { + hash: md5 + } + } }; // do the pointers intersect? @@ -5029,12 +5257,12 @@ // console.log(getIntersection([[0, 1, 3]], [[0, 2, 4]])) - const isArray$4 = function (arr) { + const isArray$3 = function (arr) { return Object.prototype.toString.call(arr) === '[object Array]' }; const getDoc = (m, view) => { - if (typeof m === 'string' || isArray$4(m)) { + if (typeof m === 'string' || isArray$3(m)) { return view.match(m) } if (!m) { @@ -5117,12 +5345,9 @@ // compile a list of matches into a match-net buildNet: function (matches) { const methods = this.methods(); - let { index, always } = methods.one.buildNet(matches, methods); - return { - isNet: true, - index, - always - } + let net = methods.one.buildNet(matches, this.world()); + net.isNet = true; + return net } }; @@ -5172,72 +5397,6 @@ }; var api$r = api$q; - const parse$7 = function (matches, methods) { - const parseMatch = methods.one.parseMatch; - matches.forEach(obj => { - obj.regs = parseMatch(obj.match); - // wrap these ifNo properties into an array - if (typeof obj.ifNo === 'string') { - obj.ifNo = [obj.ifNo]; - } - }); - return matches - }; - - var parse$8 = parse$7; - - // stich an array into another, replacing one element - function spliceArray(main, index, arrayToInsert) { - main.splice(index, 1, ...arrayToInsert); - return main - } - - // enumerate any OR options - const getORs = function (reg) { - if (reg.fastOr) { - return Array.from(reg.fastOr).map(str => { - return [{ word: str }] - }) - } - return reg.choices - }; - - // try keeping all other properties on the old reg - const combine = function (obj, reg) { - let both = Object.assign({}, obj, reg); - delete both.choices; - delete both.fastOr; - delete both.operator; - return both - }; - - const buildUp = function (matches) { - let all = []; - matches.forEach(obj => { - for (let i = 0; i < obj.regs.length; i += 1) { - let reg = obj.regs[i]; - // (negative or is un-multipliable) - !(a|b|c) -> "a" matches !b - if (reg.operator === 'or' && !reg.negative === true) { - let more = getORs(reg); - more.forEach(r => { - let tmp = Object.assign({}, obj);//clone - tmp.regs = tmp.regs.slice(0);//clone - r = r.map(main => combine(obj.regs[i], main)); - tmp.regs = spliceArray(tmp.regs, i, r); - all.push(tmp); - }); - return - } - } - all.push(obj); - }); - // console.dir(all, { depth: 5 }) - return all - }; - - - var buildUp$1 = buildUp; - // extract the clear needs for an individual match token const getTokenNeeds = function (reg) { // negatives can't be cached @@ -5256,121 +5415,162 @@ return null }; - // extract the clear needs for each match - const findNeeds = function (regs) { - // parse match strings - let need = new Set(); + const getNeeds = function (regs) { + let needs = []; regs.forEach(reg => { - let res = getTokenNeeds(reg); - if (res) { - need.add(res); - } else { - // support AND (foo && tag) - if (reg.operator === 'and' && reg.choices) { - reg.choices.forEach(oneSide => { - oneSide.forEach(r => { + needs.push(getTokenNeeds(reg)); + // support AND (foo && tag) + if (reg.operator === 'and' && reg.choices) { + reg.choices.forEach(oneSide => { + oneSide.forEach(r => { + needs.push(getTokenNeeds(r)); + }); + }); + } + }); + return needs.filter(str => str) + }; + + const getWants = function (regs) { + let wants = []; + let count = 0; + regs.forEach(reg => { + if (reg.operator === 'or' && !reg.optional && !reg.negative) { + // add fast-or terms + if (reg.fastOr) { + Array.from(reg.fastOr).forEach(w => { + wants.push(w); + }); + } + // add slow-or + if (reg.choices) { + reg.choices.forEach(rs => { + rs.forEach(r => { let n = getTokenNeeds(r); if (n) { - need.add(n); + wants.push(n); } }); }); } + count += 1; } }); - return need + return { wants, count } }; - // produce quick lookups for a list of matches - const cache$1 = function (matches) { + const parse$8 = function (matches, world) { + const parseMatch = world.methods.one.parseMatch; matches.forEach(obj => { - obj.needs = Array.from(findNeeds(obj.regs)); + obj.regs = parseMatch(obj.match, {}, world); + // wrap these ifNo properties into an array + if (typeof obj.ifNo === 'string') { + obj.ifNo = [obj.ifNo]; + } + // cache any requirements up-front + obj.needs = getNeeds(obj.regs); + let { wants, count } = getWants(obj.regs); + obj.wants = wants; + obj.minWant = count; // get rid of tiny sentences obj.minWords = obj.regs.filter(o => !o.optional).length; }); return matches }; - var cache$2 = cache$1; + var parse$9 = parse$8; - const groupBy = function (matches) { - let byGroup = {}; + // do some indexing on the list of matches + const buildNet = function (matches, world) { + // turn match-syntax into json + matches = parse$9(matches, world); + + // collect by wants and needs + let hooks = {}; matches.forEach(obj => { - obj.needs.forEach(need => { - byGroup[need] = byGroup[need] || []; - byGroup[need].push(obj); + // add needs + obj.needs.forEach(str => { + hooks[str] = hooks[str] || []; + hooks[str].push(obj); + }); + // add wants + obj.wants.forEach(str => { + hooks[str] = hooks[str] || []; + hooks[str].push(obj); + }); + }); + // remove duplicates + Object.keys(hooks).forEach(k => { + let already = {}; + hooks[k] = hooks[k].filter(obj => { + if (already[obj.match]) { + return false + } + already[obj.match] = true; + return true }); }); - return byGroup - }; - - var group = groupBy; - // do some indexing on the list of matches - const compile = function (matches, methods) { - // turn match-syntax into json - matches = parse$8(matches, methods); - // convert (a|b) to ['a', 'b'] - matches = buildUp$1(matches); - // matches = buildUp(matches) // run this twice - // retrieve the needs of each match statement - matches = cache$2(matches); // keep all un-cacheable matches (those with no needs) - let always = matches.filter(o => o.needs.length === 0); - - // organize them according to need... - let byGroup = group(matches); - - // Every sentence has a Noun/Verb, - // assume any match will be found on another need - // this is true now, - // but we should stay careful about this. - delete byGroup['#Noun']; - delete byGroup['#Verb']; - // console.log(matches.filter(o => o.needs.length === 1)) //check! - + let always = matches.filter(o => o.needs.length === 0 && o.wants.length === 0); return { - index: byGroup, + hooks, always } }; - var buildNet = compile; + var buildNet$1 = buildNet; // for each cached-sentence, find a list of possible matches - const matchUp = function (docNeeds, matchGroups) { - return docNeeds.map(needs => { - let maybes = []; - needs.forEach(need => { - if (matchGroups.hasOwnProperty(need)) { - maybes = maybes.concat(matchGroups[need]); + const getHooks = function (docCaches, hooks) { + return docCaches.map((set, i) => { + let maybe = []; + Object.keys(hooks).forEach(k => { + if (docCaches[i].has(k)) { + maybe = maybe.concat(hooks[k]); } }); - return new Set(maybes) + // remove duplicates + let already = {}; + maybe = maybe.filter(m => { + if (already[m.match]) { + return false + } + already[m.match] = true; + return true + }); + return maybe }) }; - var getCandidates = matchUp; + var getHooks$1 = getHooks; // filter-down list of maybe-matches const localTrim = function (maybeList, docCache) { - // console.log(maybeList) - for (let n = 0; n < docCache.length; n += 1) { + return maybeList.map((list, n) => { let haves = docCache[n]; - // ensure all stated-needs of the match are met - maybeList[n] = Array.from(maybeList[n]).filter(obj => { + list = list.filter(obj => { return obj.needs.every(need => haves.has(need)) }); // ensure nothing matches in our 'ifNo' property - maybeList[n] = maybeList[n].filter(obj => { + list = list.filter(obj => { if (obj.ifNo !== undefined && obj.ifNo.some(no => docCache[n].has(no)) === true) { return false } return true }); - } - return maybeList + // ensure atleast one(?) of the wants is found + list = list.filter(obj => { + if (obj.wants.length === 0) { + return true + } + // ensure there's one cache-hit + let found = obj.wants.filter(str => haves.has(str)).length; + return found >= obj.minWant + }); + return list + }) }; var trimDown = localTrim; @@ -5405,15 +5605,6 @@ }; var runMatch$1 = runMatch; - // const counts = {} - - - // setInterval(() => { - // let res = Object.keys(counts).map(k => [k, counts[k]]) - // res = res.sort((a, b) => (a[1] > b[1] ? -1 : 0)) - // console.log(res) - // }, 5000) - const tooSmall = function (maybeList, document) { return maybeList.map((arr, i) => { let termCount = document[i].length; @@ -5428,7 +5619,7 @@ // find suitable matches to attempt, on each sentence let docCache = methods.one.cacheDoc(document); // collect possible matches for this document - let maybeList = getCandidates(docCache, net.index); + let maybeList = getHooks$1(docCache, net.hooks); // ensure all defined needs are met for each match maybeList = trimDown(maybeList, docCache); // add unchacheable matches to each sentence's todo-list @@ -5437,13 +5628,15 @@ } // if we don't have enough words maybeList = tooSmall(maybeList, document); - // console.log(maybeList) - // maybeList.forEach(list => { - // list.forEach(o => { - // counts[o.match] = counts[o.match] || 0 - // counts[o.match] += 1 + + // maybeList.forEach((arr, i) => { + // let txt = document[i].map(t => t.text).join(' ') + // console.log(`==== ${txt} ====`) + // arr.forEach(m => { + // console.log(` - ${m.match}`) // }) // }) + // now actually run the matches let results = runMatch$1(maybeList, document, methods, opts); // console.dir(results, { depth: 5 }) @@ -5451,34 +5644,6 @@ }; var bulkMatch = sweep$1; - const isArray$3 = function (arr) { - return Object.prototype.toString.call(arr) === '[object Array]' - }; - - const logger = function (todo, document) { - let [n, start, end] = todo.pointer; - let terms = document[n]; - let i = start > 4 ? start - 2 : 0; - let tag = todo.tag || ''; - if (isArray$3(todo.tag)) { - tag = todo.tag.join(' #'); - } - let reason = todo.reason || todo.match; - reason = reason ? `|${reason}|` : ''; - let msg = ` ${reason}`.padEnd(20) + ' - '; - const yellow = str => '\x1b[2m' + str + '\x1b[0m'; - for (; i < terms.length; i += 1) { - if (i > end + 2) { - break - } - let str = terms[i].machine || terms[i].normal; - msg += i > start && i < end ? `\x1b[32m${str}\x1b[0m ` : `${yellow(str)} `; // matched terms are green - } - msg += ' \x1b[32m→\x1b[0m #' + tag.padEnd(12) + ' '; - console.log(msg); //eslint-disable-line - }; - var logger$1 = logger; - // is this tag consistent with the tags they already have? const canBe = function (terms, tag, model) { let tagSet = model.one.tagSet; @@ -5498,7 +5663,7 @@ }; var canBe$1 = canBe; - const tagger = function (list, document, world) { + const tagger$1 = function (list, document, world) { const { model, methods } = world; const { getDoc, setTag, unTag } = methods.one; if (list.length === 0) { @@ -5507,16 +5672,13 @@ // some logging for debugging const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; if (env.DEBUG_TAGS) { - console.log(`\n \x1b[32m→ ${list.length} corrections:\x1b[0m`); //eslint-disable-line + console.log(`\n\n \x1b[32m→ ${list.length} post-tagger:\x1b[0m`); //eslint-disable-line } return list.map(todo => { - if (!todo.tag && !todo.chunk) { + if (!todo.tag && !todo.chunk && !todo.unTag) { return } let reason = todo.reason || todo.match; - if (env.DEBUG_TAGS) { - logger$1(todo, document); - } let terms = getDoc([todo.pointer], document)[0]; // handle 'safe' tag if (todo.safe === true) { @@ -5530,7 +5692,7 @@ } } if (todo.tag !== undefined) { - setTag(terms, todo.tag, world, todo.safe, reason); + setTag(terms, todo.tag, world, todo.safe, `[post] '${reason}'`); // quick and dirty plural tagger if (terms.length === 1 && todo.tag === 'Noun') { if (terms[0].text && terms[0].text.match(/..s$/) !== null) { @@ -5547,10 +5709,10 @@ } }) }; - var bulkTagger = tagger; + var bulkTagger = tagger$1; var methods$5 = { - buildNet, + buildNet: buildNet$1, bulkMatch, bulkTagger }; @@ -5606,7 +5768,7 @@ } // finally, add our tag term.tags.add(tag); - // now it's dirty + // now it's dirty? term.dirty = true; // add a chunk too, if it's easy addChunk(term, tag); @@ -5630,15 +5792,17 @@ }; // verbose-mode tagger debuging - const log$1 = (term, tag, reason = '') => { + const log$1 = (terms, tag, reason = '') => { const yellow = str => '\x1b[33m\x1b[3m' + str + '\x1b[0m'; const i = str => '\x1b[3m' + str + '\x1b[0m'; - let word = term.text || '[' + term.implicit + ']'; + let word = terms.map(t => { + return t.text || '[' + t.implicit + ']' + }).join(' '); if (typeof tag !== 'string' && tag.length > 2) { tag = tag.slice(0, 2).join(', #') + ' +'; //truncate the list of tags } tag = typeof tag !== 'string' ? tag.join(', #') : tag; - console.log(` ${yellow(word).padEnd(24)} \x1b[32m→\x1b[0m #${tag.padEnd(25)} ${i(reason)}`); // eslint-disable-line + console.log(` ${yellow(word).padEnd(24)} \x1b[32m→\x1b[0m #${tag.padEnd(22)} ${i(reason)}`); // eslint-disable-line }; // add a tag to all these terms @@ -5650,7 +5814,7 @@ // some logging for debugging const env = typeof process === 'undefined' || !process.env ? self.env || {} : process.env; if (env && env.DEBUG_TAGS) { - log$1(terms[0], tag, reason); + log$1(terms, tag, reason); } if (isArray$2(tag) === true) { tag.forEach(tg => setTag$1(terms, tg, world, isSafe)); @@ -6019,71 +6183,20 @@ } return all }; - var basicSplit$1 = basicSplit; + var simpleSplit = basicSplit; - const isAcronym$2 = /[ .][A-Z]\.? *$/i; - const hasEllipse = /(?:\u2026|\.{2,}) *$/; - const hasLetter$1 = /\p{L}/u; + const hasLetter$1 = /[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i; + const hasSomething$1 = /\S/; - /** does this look like a sentence? */ - const isSentence = function (str, abbrevs) { - // must have a letter - if (hasLetter$1.test(str) === false) { - return false - } - // check for 'F.B.I.' - if (isAcronym$2.test(str) === true) { - return false - } - //check for '...' - if (hasEllipse.test(str) === true) { - return false - } - let txt = str.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/, ''); - let words = txt.split(' '); - let lastWord = words[words.length - 1].toLowerCase(); - // check for 'Mr.' - if (abbrevs.hasOwnProperty(lastWord) === true) { - return false - } - // //check for jeopardy! - // if (blacklist.hasOwnProperty(lastWord)) { - // return false - // } - return true - }; - var isSentence$1 = isSentence; - - //(Rule-based sentence boundary segmentation) - chop given text into its proper sentences. - // Ignore periods/questions/exclamations used in acronyms/abbreviations/numbers, etc. - //regs- - const hasSomething = /\S/; - const startWhitespace = /^\s+/; - const hasLetter = /[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i; - - const splitSentences$1 = function (text, model) { - let abbrevs = model.one.abbreviations || new Set(); - text = text || ''; - text = String(text); - let sentences = []; - // First do a greedy-split.. + const notEmpty = function (splits) { let chunks = []; - // Ensure it 'smells like' a sentence - if (!text || typeof text !== 'string' || hasSomething.test(text) === false) { - return sentences - } - // cleanup unicode-spaces - text = text.replace('\xa0', ' '); - // Start somewhere: - let splits = basicSplit$1(text); - // Filter-out the crap ones for (let i = 0; i < splits.length; i++) { let s = splits[i]; if (s === undefined || s === '') { continue } //this is meaningful whitespace - if (hasSomething.test(s) === false || hasLetter.test(s) === false) { + if (hasSomething$1.test(s) === false || hasLetter$1.test(s) === false) { //add it to the last one if (chunks[chunks.length - 1]) { chunks[chunks.length - 1] += s; @@ -6097,12 +6210,20 @@ //else, only whitespace, no terms, no sentence chunks.push(s); } - //detection of non-sentence chunks: - //loop through these chunks, and join the non-sentence chunks back together.. + return chunks + }; + var simpleMerge = notEmpty; + + //loop through these chunks, and join the non-sentence chunks back together.. + const smartMerge = function (chunks, world) { + const isSentence = world.methods.one.tokenize.isSentence; + const abbrevs = world.model.one.abbreviations || new Set(); + + let sentences = []; for (let i = 0; i < chunks.length; i++) { let c = chunks[i]; //should this chunk be combined with the next one? - if (chunks[i + 1] && isSentence$1(c, abbrevs) === false) { + if (chunks[i + 1] && isSentence(c, abbrevs) === false) { chunks[i + 1] = c + (chunks[i + 1] || ''); } else if (c && c.length > 0) { //this chunk is a proper sentence.. @@ -6110,6 +6231,31 @@ chunks[i] = ''; } } + return sentences + }; + var smartMerge$1 = smartMerge; + + //(Rule-based sentence boundary segmentation) - chop given text into its proper sentences. + // Ignore periods/questions/exclamations used in acronyms/abbreviations/numbers, etc. + //regs- + const hasSomething = /\S/; + const startWhitespace = /^\s+/; + + const splitSentences$1 = function (text, world) { + text = text || ''; + text = String(text); + // Ensure it 'smells like' a sentence + if (!text || typeof text !== 'string' || hasSomething.test(text) === false) { + return [] + } + // cleanup unicode-spaces + text = text.replace('\xa0', ' '); + // First do a greedy-split.. + let splits = simpleSplit(text); + // Filter-out the crap ones + let chunks = simpleMerge(splits); + //detection of non-sentence chunks: + let sentences = smartMerge$1(chunks, world); //if we never got a sentence, return the given text if (sentences.length === 0) { return [text] @@ -6125,7 +6271,7 @@ } return sentences }; - var sentence = splitSentences$1; + var splitSentences$2 = splitSentences$1; const hasHyphen = function (str, model) { let parts = str.split(/[-–—]/); @@ -6273,12 +6419,12 @@ result = result.filter(s => s); return result }; - var term = splitWords; + var splitTerms = splitWords; //all punctuation marks, from https://en.wikipedia.org/wiki/Punctuation //we have slightly different rules for start/end - like #hashtags. const startings = - /^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/; + /^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/; const endings = /[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/; const hasApostrophe$1 = /['’]/; @@ -6344,7 +6490,21 @@ }; return parsed }; - var whitespace = parseTerm; + var splitWhitespace = parseTerm; + + // 'Björk' to 'Bjork'. + const killUnicode = function (str, world) { + const unicode = world.model.one.unicode || {}; + str = str || ''; + let chars = str.split(''); + chars.forEach((s, i) => { + if (unicode[s]) { + chars[i] = unicode[s]; + } + }); + return chars.join('') + }; + var killUnicode$1 = killUnicode; /** some basic operations on a string to reduce noise */ const clean = function (str) { @@ -6384,7 +6544,7 @@ const noPeriodAcronym$1 = /[A-Z]{2,}('s|,)?$/; const lowerCaseAcronym$1 = /([a-z]\.)+[a-z]\.?$/; - const isAcronym$1 = function (str) { + const isAcronym$2 = function (str) { //like N.D.A if (periodAcronym$1.test(str) === true) { return true @@ -6405,7 +6565,7 @@ }; const doAcronym = function (str) { - if (isAcronym$1(str)) { + if (isAcronym$2(str)) { str = str.replace(/\./g, ''); } return str @@ -6424,27 +6584,13 @@ }; var normal = normalize$1; - // 'Björk' to 'Bjork'. - const killUnicode = function (str, world) { - const unicode = world.model.one.unicode || {}; - str = str || ''; - let chars = str.split(''); - chars.forEach((s, i) => { - if (unicode[s]) { - chars[i] = unicode[s]; - } - }); - return chars.join('') - }; - var killUnicode$1 = killUnicode; - // turn a string input into a 'document' json format - const fromString = function (input, world) { + const parse$7 = function (input, world) { const { methods, model } = world; const { splitSentences, splitTerms, splitWhitespace } = methods.one.tokenize; input = input || ''; // split into sentences - let sentences = splitSentences(input, model); + let sentences = splitSentences(input, world); // split into word objects input = sentences.map((txt) => { let terms = splitTerms(txt, model); @@ -6458,14 +6604,49 @@ }); return input }; + var fromString = parse$7; + + const isAcronym$1 = /[ .][A-Z]\.? *$/i; + const hasEllipse = /(?:\u2026|\.{2,}) *$/; + const hasLetter = /\p{L}/u; + + /** does this look like a sentence? */ + const isSentence = function (str, abbrevs) { + // must have a letter + if (hasLetter.test(str) === false) { + return false + } + // check for 'F.B.I.' + if (isAcronym$1.test(str) === true) { + return false + } + //check for '...' + if (hasEllipse.test(str) === true) { + return false + } + let txt = str.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/, ''); + let words = txt.split(' '); + let lastWord = words[words.length - 1].toLowerCase(); + // check for 'Mr.' + if (abbrevs.hasOwnProperty(lastWord) === true) { + return false + } + // //check for jeopardy! + // if (blacklist.hasOwnProperty(lastWord)) { + // return false + // } + return true + }; + var isSentence$1 = isSentence; var methods$3 = { one: { killUnicode: killUnicode$1, tokenize: { - splitSentences: sentence, - splitTerms: term, - splitWhitespace: whitespace, + splitSentences: splitSentences$2, + isSentence: isSentence$1, + splitTerms, + splitWhitespace, fromString, }, }, @@ -6661,7 +6842,7 @@ 'dl', 'ml', 'gal', - 'ft', //ambiguous + // 'ft', //ambiguous 'qt', 'pt', 'tbl', @@ -6690,13 +6871,12 @@ 'kmph', //kilometers per hour 'kb', //kilobyte 'mb', //megabyte - 'gb', //ambig + // 'gb', //ambig 'tb', //terabyte 'lx', //lux 'lm', //lumen - 'pa', //ambig + // 'pa', //ambig 'fl oz', // - 'yb', ]; @@ -6734,7 +6914,6 @@ 'bi', 'co', 'contra', - // 'counter', 'de', 'extra', 'infra', @@ -6742,28 +6921,30 @@ 'intra', 'macro', 'micro', - 'mid', 'mis', 'mono', 'multi', - // 'non', - // 'over', 'peri', - // 'post', 'pre', 'pro', 'proto', 'pseudo', 're', - // 'semi', 'sub', - // 'super', //'super-cool' 'supra', 'trans', 'tri', - // 'ultra', //'ulta-cool' 'un', - 'out', + 'out', //out-lived + // 'counter', + // 'mid', + // 'out', + // 'non', + // 'over', + // 'post', + // 'semi', + // 'super', //'super-cool' + // 'ultra', //'ulta-cool' // 'under', // 'whole', ].reduce((h, str) => { @@ -6815,7 +6996,7 @@ r: 'ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ', s: 'ŚśŜŝŞşŠšƧƨȘșȿЅѕ', t: 'ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт', - u: 'µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ', + u: 'ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ', v: 'νѴѵѶѷ', w: 'ŴŵƜωώϖϢϣШЩшщѡѿ', x: '×ΧχϗϰХхҲҳӼӽӾӿ', @@ -6831,7 +7012,7 @@ }); var unicode$1 = unicode; - var model$5 = { + var model$4 = { one: { aliases: aliases$2, abbreviations, @@ -6849,7 +7030,7 @@ // const hasApostrophe = /['’]s$/ const addAliases = function (term, world) { - let str = term.normal || term.text; + let str = term.normal || term.text || term.machine; const aliases = world.model.one.aliases; // lookup known aliases like '&' if (aliases.hasOwnProperty(str)) { @@ -7008,7 +7189,7 @@ var tokenize = { compute: compute$5, methods: methods$3, - model: model$5, + model: model$4, hooks: ['alias', 'machine', 'index', 'id'], }; @@ -7147,13 +7328,13 @@ typeahead: prepare }; - const model$4 = { + const model$3 = { one: { typeahead: {} //set a blank key-val } }; var typeahead = { - model: model$4, + model: model$3, api: api$o, lib, compute: compute$4, @@ -7168,7 +7349,7 @@ nlp$1.extend(tag); //2kb nlp$1.plugin(contractions); //~6kb nlp$1.extend(tokenize); //7kb - nlp$1.plugin(cache$3); //~1kb + nlp$1.plugin(cache$1); //~1kb nlp$1.extend(lookup); //7kb nlp$1.extend(typeahead); //1kb nlp$1.extend(lexicon$2); //1kb @@ -7301,25 +7482,26 @@ "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", "Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", "Plural": "true¦ones,records", + "Unit|Noun": "true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s", "Value": "true¦a few", "Imperative": "true¦come here", "PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut", "Verb": "true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg", "Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", - "Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shiba,y1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba,c", + "Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba", "Possessive": "true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne", - "Noun|Verb": "true¦0:7S;1:6L;2:7O;3:7Z;4:7Y;5:82;6:6X;7:7I;8:75;9:6T;a7Kb6Wc5Vd5Ae52f4Eg44h3Wi3Qj3Ok3Ml3Cm33n2Zo2Vp21ques7Mr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4U;aHeaGhEiCoAre7M;nd0rA;k,ry;mp,nApe,re,sh,tne84;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra83;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l3A;pAsh0;da4gra50;aLeKhrJiIoHrDuBwiAy4O;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Sss,t76u2;ck,e,me,p,re;e1Now,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6CpPtFuBwA;ear,it2;b1Yit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6CeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6MrAy;ay,e12ink6u3;n,r6Ite;n,rk;ee1Fow;e0Fi6o43;eep,iA;ce,p,t;ateboa5ZiA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i33;pe,re;aBed,nArv16t;se,t1Y;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0J;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1C;as5EcOdo,el,fMgLje5lKmInHo0VpFque7sCturn,vAwa5C;eAi1J;al,r1;er5JoBt,uA;lt,me;l5Hrt;air,eaAly,o3Z;l,t;dezvo26t;aAedy;ke,rk;ea1i3F;a50ist0r4E;act5Eorm,uA;nd,se;aAo4Xru8;ll;ck,i1ke,l48nAtV;ge,k;a00eXhViSlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5E;!me;ed,ss;ce,de;sAy;er4Us;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4I;aCeBuA;g,n9;ad;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Um8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2T;d0ie4S;ze;je5;a3LeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Unit44p,ve;lk,n2Yrr43x;asu12n3OrAss;ge,it;il,nBp,rk2ZsAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o25;e2DiAno3C;ck,ll,ss;am,o17uA;d9i3;mpEnBr36ssA;ue;cr19dex,fluBha6k,se1VterviAvoi3;ew;en3;a5le1Q;aEeCiBoAu3S;ld,no1Tok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo30m,ne3Hve7;!le;aIeek,lo3FoHrCuA;arAe3Ei0Nn;antee,d;aCiBoAumb6;om,u2B;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Fd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Om;us;aCe0Kip,oAy;at,od,wA;!er;g,re,sh,vo0Z;eDgClBnAre,sh,t,x;an3i0F;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo21;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0J;en3me2J;el,han9;caAtima4;pe;count0d,gine0vy;aSeMiGoFrBuAye;b,mp,pli24;aCeBiA;ft,nk,ve;am,ss;ft,in;cu05d9ubt;p,sCvA;e,iAor3;de;char9liBpA;at2lay;ke;al,ba4cDfeClBma0Wpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou08romi1;me1C;a06e1Bu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi09nBrAse,uffe0F;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aTeQiPlMoIrDuAypa0N;bb6ck6dgBff0lArn,st,zz;ly;et;anDeaCid9oadA;ca7;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss", + "Noun|Verb": "true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss", "Actor": "true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", "Honorific": "true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", - "Singular": "true¦0:56;1:4F;2:55;3:4S;4:4Q;5:4L;6:4P;7:4Z;8:4G;a4Pb44c37d2Ue2Nf2Dg22h1Qin1Njel3k1Ll1Im19n16o12p0Lqu0Kr0BsStJuGvCw9;a9ha39om29;f1i4Tt0Cy9;! arou4C;arn4DeAo9;cabu05l50;gIr9;di6t1H;nc32p2PrAs 9;do3Ps53;bani2in0; rex,aGeFhEiCoBrAu9v show;m2Hn5rntIto15;agedy,ibe,o43;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3PrAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40me15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,ph9;one;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al", + "Singular": "true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al", "Preposition": "true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", - "Person|Noun": "true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", - "Noun|Gerund": "true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng", - "Unit": "true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s", - "Adj|Noun": "true¦0:0S;a0Rb0Mc0Dde0Ce07f00gZhomel09iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b01nt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6ist00o4qua3ta2u1;bordina0Cper6;bRndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laVnt0p1;resentaUublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aFe4in3o1;biEdernUr1;al,t0;iature,or;di1tr03;an,um;attGiber0;stice,veni8;de0mpressionNn1;cumbXdividu0nocX;enious,old;a5e2i1luid;ne;llow,m1;a1inH;le;t,vo1;riIuriI;l3x1;c1ecu7pL;ess;d1iE;er;mographKriva3;hiCo1rude;m3n2opera1;tive;cre8stituFtemporary;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem5d3l2nim0rab;al;ert;olesc1ult;ent;ic", + "Person|Noun": "true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", + "Noun|Gerund": "true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng", + "Unit": "true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", + "Adj|Noun": "true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic", "ProperNoun": "true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi", "Ordinal": "true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th", "Cardinal": "true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions", @@ -7343,13 +7525,13 @@ "Conjunction": "true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", "Adj|Present": "true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", - "Comparable": "true¦0:3C;1:3G;2:3R;3:2E;a3Vb3Dc31d2Re2Kf28g1Wh1Mi1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3B;a8e6hi1Hi4ry;ck0Dde,l4n2ry,se;d,y;a4i3U;k,ry;nti35ry;a4erda1ulgar;gue,in,st;g0pcomi32;a7en2Uhi6i5ough,r4;anqu29en2ue;dy,g37me0ny,r03;ck,rs25;ll,me,rt,wd3J;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Xrre25;sta23t3;a8e7iff,r5u4;pUr2;a4ict,o2Q;ig2Xn0N;a2ep,rn;le,rk;e1Pi2Xright0;ci1Wft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Om4;!y;ek,nd2U;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Jxy;ce,y;d,fe,int0l1Fv0V;a9e7i6o4ude;mantic,o17sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai1i4;ck,et;hoBi1DlAo9r6u4;ny,r4;e,p3;egna1ic5o4;fouSud;ey,k0;liXor;ain,easa1;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Wsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Zte;ist,o2;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Hn5o13u4ve0w0Xy0L;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1C;cy,ll,n4;s7t4;e4ima5;llege1rmedia4;te;ecu4ta1;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita1;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a1d2;a4o4;st0;t3uiS;u2y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou2;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia1;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o2;ck,nd;g,tt4;er;d,ld,w2;dy;bsu7ng6we4;so4;me;ry;rd", + "Comparable": "true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", "Infinitive": "true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", "Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", "Adj|Gerund": "true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng", "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", - "Person|Verb": "true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck", + "Person|Verb": "true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck", "Person|Place": "true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria", "Person|Date": "true¦a2j0sep;an0une;!uary;p0ugust,v0;ril" }; @@ -7517,6 +7699,23 @@ g8: 'Organization', vh1: 'Organization', + 'km2': 'Unit', + 'm2': 'Unit', + 'dm2': 'Unit', + 'cm2': 'Unit', + 'mm2': 'Unit', + 'mile2': 'Unit', + 'in2': 'Unit', + 'yd2': 'Unit', + 'ft2': 'Unit', + 'm3': 'Unit', + 'dm3': 'Unit', + 'cm3': 'Unit', + 'in3': 'Unit', + 'ft3': 'Unit', + 'yd3': 'Unit', + + // ampersands 'at&t': 'Organization', 'black & decker': 'Organization', @@ -7558,19 +7757,20 @@ // irregular conjugations with two forms - 'babysat': 'PastTense', - 'blew': 'PastTense', - 'drank': 'PastTense', - 'drove': 'PastTense', - 'forgave': 'PastTense', - 'skiied': 'PastTense', - 'spilt': 'PastTense', - 'stung': 'PastTense', - 'swam': 'PastTense', - 'swung': 'PastTense', - 'guaranteed': 'PastTense', - 'shrunk': 'PastTense', - + babysat: 'PastTense', + blew: 'PastTense', + drank: 'PastTense', + drove: 'PastTense', + forgave: 'PastTense', + skiied: 'PastTense', + spilt: 'PastTense', + stung: 'PastTense', + swam: 'PastTense', + swung: 'PastTense', + guaranteed: 'PastTense', + shrunk: 'PastTense', + + no: ['Negative', 'Expression'] }; var misc$7 = misc$6; @@ -7722,7 +7922,7 @@ // - once the plugin is applied const hasSwitch = /\|/; let lexicon = misc$7; - let switches = {}; + let switches$1 = {}; const tmpModel$1 = { two: { irregularPlurals, uncountable: {} } }; @@ -7738,11 +7938,11 @@ } // add them as seperate key-val object Object.keys(wordsObj).forEach(w => { - switches[w] = tag; + switches$1[w] = tag; // pluralize Noun|Verb switches if (tag === 'Noun|Verb') { let plural = nounToPlural(w, tmpModel$1); - switches[plural] = 'Plural|Verb'; + switches$1[plural] = 'Plural|Verb'; } }); }); @@ -7804,6 +8004,8 @@ nothing: jj, //nothing secret, something: jj,//something wrong anything: jj, + not: jj,//not swell + me: jj,//called me swell }, afterWords: { too: jj, //insulting too @@ -7885,6 +8087,8 @@ const clue$6 = { beforeTags: Object.assign({}, adj$1.beforeTags, gerund.beforeTags, { // Copula: 'Adjective', + Imperative: 'Gerund',//recommend living in + Infinitive: 'Adjective',//say charming things PresentTense: 'Gerund', Plural: 'Gerund'//kids cutting }), @@ -7895,7 +8099,9 @@ beforeWords: Object.assign({}, adj$1.beforeWords, gerund.beforeWords, { is: 'Adjective', - was: 'Adjective' + was: 'Adjective', + suggest: 'Gerund', + recommend: 'Gerund', }), afterWords: Object.assign({}, adj$1.afterWords, gerund.afterWords, { @@ -7997,7 +8203,8 @@ const misc$5 = { beforeTags: { - Determiner: undefined //the premier university + Determiner: undefined, //the premier university + Cardinal: 'Noun'//1950 convertable } }; const clue$5 = { @@ -8125,6 +8332,7 @@ out: v, // on: v, off: v, + under: v, when: v,//starts when // for:true, //settled for all: v,//shiver all night @@ -8135,6 +8343,7 @@ before: v,// how: v,// otherwise: v,// + together: v,//fit together though: v,// yet: v,// }, @@ -8335,13 +8544,13 @@ var personNoun = clue$1; // 'rob the store' - 'rob lowe' - const clues$2 = { + const clues$3 = { beforeTags: Object.assign({}, person$1.beforeTags, verb.beforeTags), afterTags: Object.assign({}, person$1.afterTags, verb.afterTags), beforeWords: Object.assign({}, person$1.beforeWords, verb.beforeWords), afterWords: Object.assign({}, person$1.afterWords, verb.afterWords), }; - var personVerb = clues$2; + var personVerb = clues$3; // 'paris hilton' vs 'paris france' const place = { @@ -8380,6 +8589,29 @@ }; var personPlace = clue; + // '5 oz' - 'dr oz' + let un = 'Unit'; + const clues$2 = { + beforeTags: { Value: un }, + afterTags: {}, + beforeWords: { + per: un, + every: un, + each: un, + square: un, //square km + cubic: un, + sq: un, + metric: un //metric ton + }, + afterWords: { + per: un, + squared: un, + cubed: un, + long: un //foot long + }, + }; + var unitNoun = clues$2; + const clues = { 'Adj|Gerund': adjGerund$1, 'Adj|Noun': adjNoun, @@ -8391,6 +8623,7 @@ 'Person|Date': personDate, 'Person|Verb': personVerb, 'Person|Place': personPlace, + 'Unit|Noun': unitNoun, }; const copy = (obj, more) => { @@ -8948,9 +9181,9 @@ "rev": "uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n" }, "PastTense": { - "rules": "een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s", + "rules": "een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med", "exceptions": "was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5", - "rev": "egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed" + "rev": "egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed" }, "PresentTense": { "rules": "as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|", @@ -9241,7 +9474,7 @@ [/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/, ['Value', 'NumberRange'], '3-4'], //time-range [/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/, ['Time', 'NumberRange'], '3-4pm'], - //with unit + //number with unit [/^[0-9.]+([a-z]{1,4})$/, 'Value', '9km'], ]; @@ -10136,6 +10369,7 @@ let tag = words[word]; // normalize lexicon a little bit word = word.toLowerCase().trim(); + word = word.replace(/'s\b/, ''); // cache multi-word terms let split = word.split(/ /); if (split.length > 1) { @@ -10158,12 +10392,13 @@ // roughly, split a document by comma or semicolon const splitOn = function (terms, i) { + const isNum = /^[0-9]+$/; let term = terms[i]; // early on, these may not be dates yet: - const maybeDate = new Set(['may', 'april', 'august', 'jan']); if (!term) { return false } + const maybeDate = new Set(['may', 'april', 'august', 'jan']); // veggies, like figs if (term.normal === 'like' || maybeDate.has(term.normal)) { return false @@ -10177,6 +10412,13 @@ return false } } + // don't split numbers, yet + let str = term.normal; + if (str.length === 1 || str.length === 2 || str.length === 4) { + if (isNum.test(str)) { + return false + } + } return true }; @@ -10223,7 +10465,7 @@ }; var expandIrregulars$1 = expandIrregulars; - const getWords$1 = function (model, left, right) { + const getWords$2 = function (model, left, right) { return Object.entries(model.exceptions).reduce((h, a) => { if (left) { h[a[0]] = left; @@ -10240,19 +10482,19 @@ let res = {}; let words = {}; // past-tense - words = getWords$1(toPast, 'Infinitive', 'PastTense'); + words = getWords$2(toPast, 'Infinitive', 'PastTense'); Object.assign(res, words); // present-tense - words = getWords$1(toPresent, 'Infinitive', 'Verb'); + words = getWords$2(toPresent, 'Infinitive', 'Verb'); Object.assign(res, words); // gerund-form - words = getWords$1(toGerund, 'Infinitive', 'Gerund'); + words = getWords$2(toGerund, 'Infinitive', 'Gerund'); Object.assign(res, words); // superlative - words = getWords$1(toSuperlative, 'Adjective', 'Superlative'); + words = getWords$2(toSuperlative, 'Adjective', 'Superlative'); Object.assign(res, words); // comparative - words = getWords$1(toComparative, 'Adjective', 'Comparative'); + words = getWords$2(toComparative, 'Adjective', 'Comparative'); Object.assign(res, words); model.one.lexicon = Object.assign(res, lexicon); @@ -10289,6 +10531,8 @@ 'Person|Place': 'Person', // 'boxes' 'Plural|Verb': 'Plural', //(these are already derivative) + // 'miles' + 'Unit|Noun': 'Noun', }; const expandLexicon = function (words, model) { @@ -10373,7 +10617,7 @@ }; var expandLexicon$1 = expand; - let model$2 = { + let model$1 = { one: { _multiCache: {}, lexicon, @@ -10391,7 +10635,7 @@ regexText, regexNumbers, - switches, + switches: switches$1, clues: clues$1, uncountable: {}, @@ -10400,8 +10644,8 @@ }, }; - model$2 = expandLexicon$1(model$2); - var model$3 = model$2; + model$1 = expandLexicon$1(model$1); + var model$2 = model$1; // console.log(model.one.lexicon.see) @@ -10433,7 +10677,7 @@ tag = tag.slice(0, 2).join(', #') + ' +'; //truncate the list of tags } tag = typeof tag !== 'string' ? tag.join(', #') : tag; - console.log(` ${yellow(word).padEnd(24)} \x1b[32m→\x1b[0m #${tag.padEnd(25)} ${i(reason)}`); // eslint-disable-line + console.log(` ${yellow(word).padEnd(24)} \x1b[32m→\x1b[0m #${tag.padEnd(22)} ${i(reason)}`); // eslint-disable-line }; // a faster version than the user-facing one in ./methods @@ -10479,6 +10723,9 @@ ], n: [ 'men', + ], + t: [ + 'feet' ] }; // plural words as exceptions to suffix-rules @@ -10594,7 +10841,7 @@ for (let k = 0; k < tags.length; k += 1) { if (model.one.tagSet[tags[k]]) { let toAdd = model.one.tagSet[tags[k]].parents; - fastTag(term, toAdd, ` -inferred by #${tags[k]}`); + fastTag(term, toAdd, ` -inferred by #${tags[k]}`); } } // turn 'Noun' into Plural/Singular @@ -10793,16 +11040,46 @@ const min = 1400; const max = 2100; - const dateWords = new Set(['in', 'on', 'by', 'for', 'during', 'within', 'before', 'after', 'of', 'this', 'next', 'last', 'may']); + const dateWords = new Set([ + 'in', + 'on', + 'by', + 'until', + 'for', + 'to', + 'during', + 'throughout', + 'through', + 'within', + 'before', + 'after', + 'of', + 'this', + 'next', + 'last', + 'circa', + 'around', + 'post', + 'pre', + 'budget', + 'classic', + 'plan', + 'may' + ]); const seemsGood = function (term) { if (!term) { return false } - if (dateWords.has(term.normal)) { + let str = term.normal || term.implicit; + if (dateWords.has(str)) { return true } - if (term.tags.has('Date') || term.tags.has('Month') || term.tags.has('WeekDay')) { + if (term.tags.has('Date') || term.tags.has('Month') || term.tags.has('WeekDay') || term.tags.has('Year')) { + return true + } + // 1999 Film Festival + if (term.tags.has('ProperNoun')) { return true } return false @@ -10815,9 +11092,21 @@ if (term.tags.has('Ordinal')) { return true } + // untagged 'june 13 2007' + if (term.tags.has('Cardinal') && term.normal.length < 3) { + return true + } + // 2020 was .. + if (term.normal === 'is' || term.normal === 'was') { + return true + } return false }; + const seemsFine = function (term) { + return term && (term.tags.has('Date') || term.tags.has('Month') || term.tags.has('WeekDay') || term.tags.has('Year')) + }; + // recognize '1993' as a year const tagYear = function (terms, i) { const term = terms[i]; @@ -10826,14 +11115,27 @@ // number between 1400 and 2100 if (num && !isNaN(num)) { if (num > min && num < max) { - if (seemsGood(terms[i - 1]) || seemsGood(terms[i + 1])) { + let lastTerm = terms[i - 1]; + let nextTerm = terms[i + 1]; + if (seemsGood(lastTerm) || seemsGood(nextTerm)) { return fastTag(term, 'Year', '2-tagYear') } // or is it really-close to a year? - if (num > 1950 && num < 2025) { - if (seemsOkay(terms[i - 1]) || seemsOkay(terms[i + 1])) { + if (num >= 1920 && num < 2025) { + // look at neighbours + if (seemsOkay(lastTerm) || seemsOkay(nextTerm)) { return fastTag(term, 'Year', '2-tagYear-close') } + // look at far-neighbours + if (seemsFine(terms[i - 2]) || seemsFine(terms[i + 2])) { + return fastTag(term, 'Year', '2-tagYear-far') + } + // 'the 2002 hit', 'my 1950 convertable' + if (lastTerm && (lastTerm.tags.has('Determiner') || lastTerm.tags.has('Possessive'))) { + if (nextTerm && nextTerm.tags.has('Noun') && !nextTerm.tags.has('Plural')) { + return fastTag(term, 'Year', '2-tagYear-noun') + } + } } } } @@ -11037,12 +11339,20 @@ return null }; + // 'a rental' + const isEndNoun = function (terms, i) { + if (!terms[i + 1] && terms[i - 1] && terms[i - 1].tags.has('Determiner')) { + return 'Noun' + } + return null + }; + const adhoc = { 'Adj|Gerund': (terms, i) => { return isCapital(terms, i) }, 'Adj|Noun': (terms, i) => { - return isCapital(terms, i) + return isCapital(terms, i) || isEndNoun(terms, i) }, 'Adj|Past': (terms, i) => { return isCapital(terms, i) @@ -11095,7 +11405,7 @@ }); let found = tags.find(tag => obj[tag]); if (found && env.DEBUG_TAGS) { - console.log(`\n \x1b[2m\x1b[3m ↓ - '${term.normal}' (#${found}) \x1b[0m`);//eslint-disable-line + console.log(` \x1b[2m\x1b[3m ↓ - '${term.normal || term.implicit}' (#${found}) \x1b[0m`);//eslint-disable-line } found = obj[found]; return found @@ -11142,17 +11452,16 @@ } // did we find anything? if (tag) { - if (env.DEBUG_TAGS) { - console.log(`\n \x1b[32m [variable] - '${str}' - (${form}) → #${tag} \x1b[0m\n`);//eslint-disable-line - } - // setTag(term, tag, model) - setTag([term], tag, world, null, `3-[variable]`); + // tag it + setTag([term], tag, world, null, `3-[variable] (${form})`); + // add plural/singular etc. + fillTags$1(terms, i, model); } else if (env.DEBUG_TAGS) { - console.log(`\n -> X - '${str}' : ${form} `);//eslint-disable-line + console.log(`\n -> X - '${str}' : (${form}) `);//eslint-disable-line } } }; - var variables = doSwitches; + var switches = doSwitches; // 'out lived' is a verb-phrase // 'over booked' is too @@ -11197,7 +11506,7 @@ neighbours: neighbours$1, orgWords, nounFallback: nounFallback$1, - variables, + switches, }; // @@ -11236,7 +11545,7 @@ // support 'out-lived' second.checkHyphen(terms, i, model); // verb-noun disambiguation, etc - third.variables(terms, i, world); + third.switches(terms, i, world); } }; @@ -11255,8 +11564,6 @@ // guess by the neighbours thirdPass(terms, model, world); } - // leave a nice cache for the next people - view.compute('cache'); return document }; @@ -11770,7 +12077,7 @@ var preTag = { compute: compute$3, methods: methods$1, - model: model$3, + model: model$2, tags, hooks: ['preTagger'], }; @@ -11893,13 +12200,14 @@ if (!words || words.length === 0) { return } - words = words.map((word) => { + words = words.map((word, i) => { word.implicit = word.text; word.machine = word.text; word.pre = ''; word.post = ''; word.text = ''; word.normal = ''; + word.index = [n, w + i]; return word }); if (words[0]) { @@ -12087,6 +12395,15 @@ const byApostrophe = /'/; + // poor-mans reindexing of this sentence only + const reIndex = function (terms) { + terms.forEach((t, i) => { + if (t.index) { + t.index[1] = i; + } + }); + }; + // run tagger on our new implicit terms const reTag = function (terms, view, start, len) { let tmp = view.update(); @@ -12100,7 +12417,9 @@ end += 1; } tmp.ptrs = [[0, start, end]]; - tmp.compute(['lexicon', 'preTagger', 'index']); + tmp.compute(['lexicon', 'preTagger']); + // don't for a reindex of the whole document + reIndex(terms); }; const byEnd = { @@ -12119,9 +12438,12 @@ }; const toDocs = function (words, view) { - return view.fromText(words.join(' ')).docs[0] + let doc = view.fromText(words.join(' ')); + doc.compute('id'); + return doc.docs[0] }; + //really easy ones const contractionTwo$1 = (view) => { let { world, document } = view; @@ -12147,7 +12469,7 @@ if (words) { words = toDocs(words, view); splice(document, [n, i], words); - reTag(document[n], view); + reTag(document[n], view, i, words.length); continue } } @@ -12244,6 +12566,8 @@ { match: `(have|had) [#Adjective] #Preposition .`, group: 0, tag: 'Noun', reason: 'have-fun' }, // brewing giant { match: `#Gerund (giant|capital|center|zone|application)`, tag: 'Noun', reason: 'brewing-giant' }, + // in an instant + { match: `#Preposition (a|an) [#Adjective]$`, group: 0, tag: 'Noun', reason: 'an-instant' }, ]; var adjVerb = [ @@ -12274,12 +12598,11 @@ // got tired of { match: 'got #Adverb? [#PastTense] of', group: 0, tag: 'Adjective', reason: 'got-tired-of' }, //felt loved - { - match: '(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]', - group: 0, - tag: 'Adjective', - reason: 'felt-loved', - }, + { match: '(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]', group: 0, tag: 'Adjective', reason: 'felt-loved' }, + // seem confused + { match: '(seem|feel|seemed|felt) [#PastTense]', group: 0, tag: 'Adjective', reason: 'seem-confused' }, + // a bit confused + { match: 'a (bit|little|tad) [#PastTense]', group: 0, tag: 'Adjective', reason: 'a-bit-confused' }, ]; // const adverbAdj = '(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)' @@ -12528,14 +12851,15 @@ // { match: '%Noun|Gerund%$', tag: 'Noun', reason: 'music-playing' }, // fight and win { match: '#Infinitive and [%Noun|Verb%]', group: 0, tag: 'Infinitive', reason: 'fight and win' }, - // hopes and dreams - // { match: '#Noun and [%Plural|Verb%]', group: 0, tag: 'Plural', reason: 'hopes-and-dreams' }, // bride and groom { match: '#Noun and [%Noun|Verb%]', group: 0, tag: 'Singular', ifNo: ['#ProperNoun'], reason: 'bride-and-groom' }, // an impressionist painting - { match: '#Determiner [%Adj|Noun%] #Noun', group: 0, tag: 'Adjective', ifNo: ['#ProperNoun'], reason: 'a-complex-relationship' }, - // visit houses - // { match: '^[%Noun|Verb%] #Noun', group: 0, tag: 'Verb', reason: 'visit-boards' }, + // { match: '#Determiner [%Adj|Noun%] #Noun', group: 0, tag: 'Adjective', ifNo: ['#ProperNoun', '#Pronoun'], reason: 'a-complex-relationship' }, + // the 1992 classic + { match: 'the #Cardinal [%Adj|Noun%]', group: 0, tag: 'Noun', reason: 'the-1992-classic' }, + + // + // { match: '[%Adj|Noun%] #ProperNoun', group: 0, tag: 'Adjective', ifNo: ['#ProperNoun'], reason: 'epic-instagram' }, ]; var gerundNouns = [ @@ -12544,7 +12868,9 @@ // the paving stones { match: '(that|the) [#Gerund #PresentTense]', group: 0, tag: 'Plural', reason: 'the-paving-stones' }, // this swimming - { match: '(this|that|the) [#Gerund]', group: 0, tag: 'Noun', reason: 'this-gerund' }, + // { match: '(this|that|the) [#Gerund]', group: 0, tag: 'Noun', reason: 'this-gerund' }, + // the remaining claims + { match: '#Determiner [#Gerund] #Noun', group: 0, tag: 'Adjective', reason: 'the-gerund-noun' }, // i think tipping sucks { match: `#Pronoun #Infinitive [#Gerund] #PresentTense`, group: 0, tag: 'Noun', reason: 'tipping-sucks' }, // early warning @@ -12705,7 +13031,7 @@ { match: '#Value [#PresentTense]', group: 0, - ifNo: ['one', '1', '#Copula'], + ifNo: ['one', '1', '#Copula', '#Infinitive'], tag: 'Plural', reason: '2-trains', }, @@ -12833,11 +13159,13 @@ //quarter million { match: '#Determiner [(half|quarter)] #Ordinal', group: 0, tag: 'Value', reason: 'half-ordinal' }, // thousand and two - { - match: `#Multiple+ and #Value`, - tag: 'Value', - reason: 'magnitude-and-value', - }, + { match: `#Multiple+ and #Value`, tag: 'Value', reason: 'magnitude-and-value' }, + // ambiguous units like 'gb' + // { match: '#Value square? [(kb|mb|gb|tb|ml|pt|qt|tbl|tbsp|km|cm|mm|mi|ft|yd|kg|hg|mg|oz|lb|mph|pa|miles|yard|yards|pound|pounds)]', group: 0, tag: 'Unit', reason: '12-gb' }, + // 5 miles per hour + { match: '#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]', group: 0, tag: 'Unit', reason: '12-miles-per-second' }, + // 5 square miles + { match: '#Value [(square|cubic)] #Unit', group: 0, tag: 'Unit', reason: 'square-miles' }, ]; var person = [ @@ -12982,13 +13310,13 @@ // ollie faroo { match: '%Person|Verb% #Acronym? #ProperNoun', tag: 'Person', reason: 'verb-propernoun' }, // chuck will ... - { match: `[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)`, tag: 'Person', reason: 'person-said' }, + { match: `[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)`, group: 0, tag: 'Person', reason: 'person-said' }, // ===person-place=== //sydney harbour - { match: `[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)`, tag: 'Place', reason: 'sydney-harbour' }, + { match: `[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)`, group: 0, tag: 'Place', reason: 'sydney-harbour' }, // east sydney - { match: `(west|east|north|south) [%Person|Place%]`, tag: 'Place', reason: 'east-sydney' }, + { match: `(west|east|north|south) [%Person|Place%]`, group: 0, tag: 'Place', reason: 'east-sydney' }, // ===person-adjective=== // rusty smith @@ -13027,13 +13355,6 @@ // adj -> gerund // like { match: '(#Modal|i|they|we|do) not? [like]', group: 0, tag: 'PresentTense', reason: 'modal-like' }, - // do not simply like - { - match: 'do (simply|just|really|not)+ [(#Adjective|like)]', - group: 0, - tag: 'Verb', - reason: 'do-simply-like', - }, // ==== Tense ==== //he left { match: '#Noun #Adverb? [left]', group: 0, tag: 'PastTense', reason: 'left-verb' }, @@ -13098,48 +13419,39 @@ // jobs that fit { match: '#Plural that %Noun|Verb%', tag: '. #Preposition #Infinitive', reason: 'jobs-that-work' }, // works for me - { match: '[works] for me', group: 0, tag: '#PresentTense', reason: 'works-for-me' }, + { match: '[works] for me', group: 0, tag: 'PresentTense', reason: 'works-for-me' }, + // no no no + // { match: 'no+', tag: 'Expression', reason: 'no-no' }, + + + // { match: '%Plural|Verb% %Noun|Verb%', tag: '#Plural #PresentTense', reason: 'banks-wear' }, ]; // these are some of our heaviest-used matches var auxiliary = [ // ==== Auxiliary ==== + // have been + { match: `will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb`, group: 0, tag: 'Auxiliary', reason: 'will-have-vb' }, //was walking { match: `[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)`, group: 0, tag: 'Auxiliary', reason: 'copula-walking' }, //would walk { match: `#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb`, group: 0, tag: 'Auxiliary', reason: 'modal-verb' }, //would have had - { - match: `#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb`, - group: 0, - tag: 'Auxiliary', - reason: 'would-have', - }, + { match: `#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb`, group: 0, tag: 'Auxiliary', reason: 'would-have' }, //support a splattering of auxillaries before a verb { match: `[(has|had)] (#Adverb|not)+? #PastTense`, group: 0, tag: 'Auxiliary', reason: 'had-walked' }, // will walk - { - match: '[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb', - group: 0, - tag: 'Auxiliary', - reason: 'have-had', - }, + { match: '[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb', group: 0, tag: 'Auxiliary', reason: 'have-had' }, // about to go { match: '[about to] #Adverb? #Verb', group: 0, tag: ['Auxiliary', 'Verb'], reason: 'about-to' }, //would be walking { match: `#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb`, group: 0, tag: 'Auxiliary', reason: 'would-be' }, //had been walking - { - match: `[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb`, - group: 0, - tag: 'Auxiliary', - reason: 'had-been', - }, + { match: `[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb`, group: 0, tag: 'Auxiliary', reason: 'had-been' }, // was being driven { match: '[(be|being|been)] #Participle', group: 0, tag: 'Auxiliary', reason: 'being-driven' }, // may want { match: '[may] #Adverb? #Infinitive', group: 0, tag: 'Auxiliary', reason: 'may-want' }, - // was being walked { match: '#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense', group: 0, tag: 'Auxiliary', reason: 'being-walked' }, // will be walked @@ -13149,16 +13461,9 @@ // used to walk { match: '[used to] #PresentTense', group: 0, tag: 'Auxiliary', reason: 'used-to-walk' }, // was going to walk - { - match: '#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense', - group: 0, - tag: 'Auxiliary', - reason: 'going-to-walk', - }, + { match: '#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense', group: 0, tag: 'Auxiliary', reason: 'going-to-walk' }, // tell me { match: '#Imperative [(me|him|her)]', group: 0, tag: 'Reflexive', reason: 'tell-him' }, - // walk yourself - // { match: '#Imperative [#Reflexive]', group: 0, tag: 'Auxiliary', reason: 'tell-him' }, // there is no x { match: '(is|was) #Adverb? [no]', group: 0, tag: 'Negative', reason: 'is-no' }, ]; @@ -13233,6 +13538,8 @@ { match: '^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun', group: 0, tag: 'Imperative', reason: 'shut-the-door' }, // go to toronto { match: '^[go] to .', group: 0, tag: 'Imperative', reason: 'go-to-toronto' }, + // would you recommend + { match: '^#Modal you [#Infinitive]', group: 0, tag: 'Imperative', reason: 'would-you-' }, // never say { match: '^never [#Infinitive]', group: 0, tag: 'Imperative', reason: 'never-stop' }, // stay away @@ -13274,6 +13581,8 @@ { match: '^(well|so|okay|now)', tag: 'Expression', reason: 'well-' }, // some sort of { match: 'some sort of', tag: 'Adjective Noun Conjunction', reason: 'some-sort-of' }, + // some of + // { match: 'some of', tag: 'Noun Conjunction', reason: 'some-of' }, // of some sort { match: 'of some sort', tag: 'Conjunction Adjective Noun', reason: 'of-some-sort' }, @@ -13492,7 +13801,7 @@ places$1, conjunctions ); - var model$1 = { + var model = { two: { matches, }, @@ -13504,8 +13813,7 @@ const postTagger = function (view) { const { world } = view; const { model, methods } = world; - - net$1 = net$1 || methods.one.buildNet(model.two.matches, methods); + net$1 = net$1 || methods.one.buildNet(model.two.matches, world); // perform these matches on a comma-seperated document let document = methods.two.quickSplit(view.document); let ptrs = document.map(terms => { @@ -13520,7 +13828,10 @@ return view }; - var compute$1 = { postTagger }; + // helper function for compute('tagger') + const tagger = (view) => view.compute(['lexicon', 'preTagger', 'postTagger']); + + var compute$1 = { postTagger, tagger }; const round$1 = n => Math.round(n * 100) / 100; @@ -13543,17 +13854,60 @@ // (re-) run the POS-tagger View.prototype.tagger = function () { - return this.compute(['preTagger', 'contractionTwo', 'postTagger']) + return this.compute(['tagger']) }; } - const plugin$4 = { + const plugin$3 = { api: api$k, compute: compute$1, - model: model$1, + model, hooks: ['postTagger'], }; - var postTag = plugin$4; + var postTag = plugin$3; + + const getWords$1 = function (net) { + return Object.keys(net.hooks).filter(w => !w.startsWith('#') && !w.startsWith('%')) + }; + + const maybeMatch$2 = function (doc, net) { + // must have *atleast* one of these words + let words = getWords$1(net); + if (words.length === 0) { + return doc + } + if (!doc._cache) { + doc.cache(); + } + let cache = doc._cache; + // return sentences that have one of our needed words + return doc.filter((_m, i) => { + return words.some(str => cache[i].has(str)) + }) + }; + var maybeMatch$3 = maybeMatch$2; + + // tokenize first, then only tag sentences required + const lazyParse$2 = function (input, reg) { + let net = reg; + if (typeof reg === 'string') { + net = this.buildNet([{ match: reg }]); + } + let doc = this.tokenize(input); + let m = maybeMatch$3(doc, net); + if (m.found) { + m.compute(['index', 'tagger']); + return m.match(reg) + } + return doc.none() + }; + var lazy$2 = lazyParse$2; + + var lazy$1 = { + lib: { + lazy: lazy$2 + } + }; const matchVerb = function (m, lemma) { const conjugate = m.methods.two.transform.verbConjugate; @@ -13627,6 +13981,7 @@ nlp$1.plugin(preTag); //~103kb nlp$1.plugin(contractionTwo); // nlp$1.plugin(postTag); //~33kb + nlp$1.plugin(lazy$1); // nlp$1.plugin(swap); // const clauses = function (n) { @@ -13886,7 +14241,7 @@ // { match: '#Adjective+ ', chunk: 'Noun' }, // --- of --- // son of a gun - { match: ' of #Determiner? #Noun', chunk: 'Noun' }, + { match: '#Noun of #Determiner? #Noun', chunk: 'Noun' }, // --- in --- { match: '#Noun in #Determiner? #Noun', chunk: 'Noun' }, // indoor and outdoor seating @@ -13898,7 +14253,7 @@ let net = null; const matcher = function (view, _, world) { const { methods } = world; - net = net || methods.one.buildNet(rules, methods); + net = net || methods.one.buildNet(rules, world); view.sweep(net); }; var matcher$1 = matcher; @@ -15588,7 +15943,7 @@ // return the nth elem of a doc const getNth$7 = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc); - const plugin$3 = function (View) { + const plugin$2 = function (View) { /** */ class Fractions extends View { @@ -15667,7 +16022,7 @@ }; }; - var fractions = plugin$3; + var fractions = plugin$2; const ones = 'one|two|three|four|five|six|seven|eight|nine'; const tens = 'twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty'; @@ -15795,6 +16150,8 @@ return { num: parseText(m) } } let str = m.text('reduced'); + // reach for '12 litres' + let unit = m.growRight('#Unit').match('#Unit$').text('machine'); // is it in '3,123' format? let hasComma = /[0-9],[0-9]/.test(m.text('text')); // parse a numeric-number like '$4.00' @@ -15802,6 +16159,7 @@ let res = parseNumeric(str, m); if (res !== null) { res.hasComma = hasComma; + res.unit = unit; return res } } @@ -15828,15 +16186,18 @@ if (fraction && fraction.decimal) { num += fraction.decimal; } + + return { - hasComma: hasComma, + hasComma, prefix: '', - num: num, + num, suffix: '', isOrdinal: m.has('#Ordinal'), isText: m.has('#TextValue'), isFraction: m.has('#Fraction'), isMoney: m.has('#Money'), + unit } }; var parse$4 = parseNumber; @@ -15890,9 +16251,9 @@ const suffixes = { '%': 'percent', // s: 'seconds', - cm: 'centimetres', - km: 'kilometres', - ft: 'feet', + // cm: 'centimetres', + // km: 'kilometres', + // ft: 'feet', '°': 'degrees' }; @@ -15969,6 +16330,7 @@ num: parsed.num, suffix: parsed.suffix, hasComma: parsed.hasComma, + unit: parsed.unit }; return json }, []) @@ -16247,12 +16609,12 @@ return this }; - const plugin$2 = { + const plugin$1 = { api: function (View) { View.prototype.redact = redact; } }; - var redact$1 = plugin$2; + var redact$1 = plugin$1; //is this sentence asking a question? const isQuestion = function (doc) { @@ -17691,7 +18053,7 @@ // console.log(form) if (forms$3.hasOwnProperty(form)) { vb = forms$3[form](vb, parsed); - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + vb.fullSentence().compute(['tagger', 'chunks']); return vb } // do nothing i guess? @@ -17924,7 +18286,7 @@ // console.log(form) if (forms$2.hasOwnProperty(form)) { vb = forms$2[form](vb, parsed); - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + vb.fullSentence().compute(['tagger', 'chunks']); return vb } return vb @@ -18074,7 +18436,7 @@ } if (forms$1.hasOwnProperty(form)) { vb = forms$1[form](vb, parsed); - vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']); + vb.fullSentence().compute(['tagger', 'chunks']); return vb } return vb @@ -18110,7 +18472,7 @@ } vb.replace('not is', 'is not'); vb.replace('not are', 'are not'); - vb.fullSentence().compute(['preTagger', 'postTagger', 'chunks']); + vb.fullSentence().compute(['tagger', 'chunks']); return vb }; var toGerund$1 = toGerund; @@ -18412,7 +18774,7 @@ nlp$1.plugin(topics); // nlp$1.plugin(verbs); // - let model = nlp$1.model(); + let world = nlp$1.world(); const splitSentences = nlp$1.methods().one.tokenize.splitSentences; const fastSplit = function (str, numChunks = 1) { @@ -18427,7 +18789,7 @@ const pluckStarts = function (arr) { for (let i = 1; i < arr.length; i += 1) { let top = arr[i].substr(0, 200); - let first = splitSentences(top, model)[0]; + let first = splitSentences(top, world)[0]; // move the first (part) sentence onto the end of the last one let len = first.length; arr[i - 1] += first; @@ -18471,7 +18833,7 @@ const cpuCount = os__default["default"].cpus().length; let workerCount = cpuCount; - const workerPool = function (txt, reg) { + const workerPool$1 = function (txt, reg) { let nlp = this; if (typeof reg === 'string') { reg = nlp.parseMatch(reg); @@ -18513,66 +18875,67 @@ }); }) }; - var workerPool$1 = workerPool; + var workerPool$2 = workerPool$1; - var plugin$1 = { + var workerPool = { lib: { - workerPool: workerPool$1 + workerPool: workerPool$2 } }; const getWords = function (net) { - return Object.keys(net.index).filter(w => !w.startsWith('#') && !w.startsWith('%')) + return Object.keys(net.hooks).filter(w => !w.startsWith('#') && !w.startsWith('%')) }; - const maybeMatch = function (net) { - + const maybeMatch = function (doc, net) { // must have *atleast* one of these words let words = getWords(net); if (words.length === 0) { - return this + return doc } - - if (!this._cache) { - this.cache(); + if (!doc._cache) { + doc.cache(); } + let cache = doc._cache; // return sentences that have one of our needed words - return this.filter(m => { - return words.some(str => m._cache.has(str)) + return doc.filter((_m, i) => { + return words.some(str => cache[i].has(str)) }) }; var maybeMatch$1 = maybeMatch; // tokenize first, then only tag sentences required - const lazyParse = function (input, reg) { + const lazyParse$1 = function (input, reg) { let net = reg; if (typeof reg === 'string') { net = this.buildNet([{ match: reg }]); } let doc = this.tokenize(input); - let m = doc.maybeMatch(net); + let m = maybeMatch$1(doc, net); if (m.found) { - m.compute(['lexicon']); - // m.compute(['lexicon', 'preTagger', 'postTagger']) + m.compute(['index', 'tagger']); return m.match(reg) } return doc.none() }; - var lazyParse$1 = lazyParse; + var lazy = lazyParse$1; - var plugin = { - api: function (View) { - View.prototype.maybeMatch = maybeMatch$1; - }, + var lazyParse = { lib: { - lazyParse: lazyParse$1 + lazy } }; - exports.keyPress = index$2; - exports.lazyParse = plugin; + // combine all the plugins + const plugin = { + lib: Object.assign({}, streamFile$1.lib, keyPress$1.lib, workerPool.lib, lazyParse.lib), + }; + + exports["default"] = plugin; + exports.keyPress = keyPress$1; + exports.lazyParse = lazyParse; exports.streamFile = streamFile$1; - exports.workerPool = plugin$1; + exports.workerPool = workerPool; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/plugins/speed/builds/compromise-speed.min.js b/plugins/speed/builds/compromise-speed.min.js index 5a0176189..b2e77909f 100644 --- a/plugins/speed/builds/compromise-speed.min.js +++ b/plugins/speed/builds/compromise-speed.min.js @@ -1,2 +1,2 @@ -var e,t;e=this,t=function(e,t,n,r,a,o){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var l=s(t),u=i(n),c=i(o),h={lib:{streamFile:function(e,t,n={}){const r=this;let a=r.model();const o=r.methods().one.tokenize.splitSentences,i=l.createReadStream(e,n);let s="",u=[];const c=e=>{let n=r(e),a=t(n);a&&a.found&&a.docs.forEach(e=>u.push(e))};return new Promise((e,t)=>{i.on("data",(function(e){s+=e;let[t,n]=function(e){let t=s.substring(e.length-300),n=o(t,a),r=n[n.length-1];return[e.substr(0,e.length-r.length),r]}(s);c(t),s=n})),i.on("end",(function(){c(s);let t=r("");t.document=u,e(t)})),i.on("error",(function(e){console.error(e.stack),t(e)}))})}}};let d={};var p={lib:{keyPress:function(e,t,n={}){const r=this;let a=(0,this.methods().one.tokenize.splitSentences)(e,this.model()),o=[];return a.forEach(e=>{if(!0===d.hasOwnProperty(e))o.push(d[e].data),d[e].used=!0;else{n.verbose&&console.log(`parsing: '${e}'\n`);let a=r(e,t).json(0);d[e]={data:a,used:!0},o.push(a)}}),Object.keys(d).forEach(e=>{!0!==d[e].used?delete d[e]:d[e].used=null}),n.verbose&&console.log(Object.keys(d).length+"' sentences in cache\n"),r(o)}}},m={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},g={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(e=>t.compute.hasOwnProperty(e)&&n[e](this)):"function"==typeof e?e(this):console.warn("no compute:",e),this}},f={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const b={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=[];this.docs.forEach(e=>{e.forEach(e=>{let[n,r]=e.index||[];t.push([n,r,r+1])})});let n=this.update(t);return"number"==typeof e?n.eq(e):n},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};b.group=b.groups,b.fullSentence=b.fullSentences,b.sentence=b.fullSentences,b.lastTerm=b.lastTerms,b.firstTerm=b.firstTerms;var v=b;const y=Object.assign({},v,g,f);y.get=y.eq;var w=y;class View{constructor(e,t,n={}){[["document",e],["world",m],["_groups",n],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=t}get docs(){let e=this.document;return this.ptrs&&(e=m.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon","preTagger"]),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,w);var k=View;const P=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var A=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(P(n))for(const r in n)P(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const j=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var E=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):j(e)?j(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(j(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let x=Object.assign({},m);const N=function(e,t){t&&N.addWords(t);let n=E(e,k,x);return e&&n.compute(x.hooks),n};Object.defineProperty(N,"_world",{value:x,writable:!0}),N.tokenize=function(e,t){const{compute:n}=this._world;t&&N.addWords(t);let r=E(e,k,x);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},N.plugin=function(e){return A(e,this._world,k,this),this},N.extend=N.plugin,N.world=function(){return this._world},N.model=function(){return this._world.model},N.methods=function(){return this._world.methods},N.hooks=function(){return this._world.hooks},N.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},N.version="14.2.0-rc2";var I=N;const G={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var T={api:function(e){Object.assign(e.prototype,G)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),D=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},O=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},B=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},V=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?O(n):(O(n),O([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!C(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||C(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),D(e,o,n)},z=(new Date).getTime(),$=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var F=function(e){let[t,n]=e.index||[0,0];var r=(new Date).getTime()-z;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=$((r=r>46655?46655:r).toString(36));a+=$(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const S=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},H=e=>"[object Array]"===Object.prototype.toString.call(e),M=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:H(e)?H(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=F(e),e))}(d),n?(S(t.update([u]).firstTerm()),V(h,u,d,r)):(S(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(J,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon","preTagger"]);return t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var K=q,U=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const R={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=U(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};R.delete=R.remove;var _=R;const Q={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};Q.deHyphenate=Q.dehyphenate,Q.toQuotation=Q.toQuotations;var Z=Q,X={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const Y=new Set(["index","sequence","seq","sequential","chron","chronological"]),ee=new Set(["freq","frequency","topk","repeats"]),te=new Set(["alpha","alphabetical"]);var ne={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return Y.has(e)&&(e="sequential"),te.has(e)&&(e="alpha"),ee.has(e)?(a=X.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof X[e]?(a=a.sort(X[e]),this.update(a.map(e=>e.pointer))):this}};const re=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var ae={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return D(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=re(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=re(this.document,e);return this.document=t,this.all()}var a;return this}},oe={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const ie=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},W,K,_,Z,ne,ae,oe);var se={api:function(e){Object.assign(e.prototype,ie)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ce=/'/,he=new Set(["what","how","when","where","why"]),de=new Set(["be","go","start","think","need"]),pe=new Set(["been","gone"]);var me=function(e,t){let n=e[t].normal.split(ce)[0];if(he.has(n))return[n,"did"];if(e[t+1]){if(pe.has(e[t+1].normal))return[n,"had"];if(de.has(e[t+1].normal))return[n,"would"]}return null},ge=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const fe=/'/;var be=(e,t)=>["je",e[t].normal.split(fe)[1]],ve=(e,t)=>{let n=e[t].normal.split(fe)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ye=(e,t)=>{let n=e[t].normal.split(fe)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const we=/^([0-9.]{1,3}[a-z]{0,2}) ?[-–—] ?([0-9]{1,3}[a-z]{0,2})$/i,ke=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i;var Pe=function(e,t){let n=e[t];if(!0===n.tags.has("PhoneNumber"))return null;let r=n.text.match(we);return null!==r?[r[1],"to",r[2]]:(r=n.text.match(ke),null!==r?[r[1],"to",r[4]]:null)};const Ae=/'/,je=/^[0-9][^-–—]*[-–—].*?[0-9]/,Ee=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger","index"])},xe={t:(e,t)=>ge(e,t),d:(e,t)=>me(e,t)},Ne={j:(e,t)=>be(e,t),l:(e,t)=>ve(e,t),d:(e,t)=>ye(e,t)},Ie=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===Ae.test(r[s].normal)&&([l,u]=r[s].normal.split(Ae));let c=Ie(o,r[s],l,u);!c&&xe.hasOwnProperty(u)&&(c=xe[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),c?(c=Ge(c,e),ue(n,[i,s],c),Ee(n[i],e,s,c.length)):je.test(r[s].normal)&&(c=Pe(r,s),c&&(c=Ge(c,e),ue(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),Ee(n[i],e,s,c.length)))}})}},hooks:["contractions"]},Ce=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===De.test(l)){let e=l.replace(De,"");if(i.hasOwnProperty(e)&&e.length>3&&Oe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},ze=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const He=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Me=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=He(e.goNext,void 0),e.failTo=He(e.failTo,0),e.endAs=He(e.endAs,null),e},Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:ze(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=ze(e,this.world());return Me(t)}}};const We=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Je=function(e,t){let{ptrs:n,byGroup:r}=e;return n=We(n,t),Object.keys(r).forEach(e=>{r[e]=We(r[e],t)}),{ptrs:n,byGroup:r}},qe=e=>"[object Object]"===Object.prototype.toString.call(e),Ke=e=>e&&qe(e)&&!0===e.isView,Ue=e=>e&&qe(e)&&!0===e.isNet;var Re={matchOne:function(e,t,n){const r=this.methods.one;if(Ke(e))return this.intersection(e).eq(0);if(Ue(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Je(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Ke(e))return this.intersection(e);if(Ue(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Je(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Ke(e))return e.fullPointer.length>0;if(Ue(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Ke(e))return this.filter(t=>t.intersection(e).found);if(Ue(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Ke(e))return this.filter(t=>!t.intersection(e).found);if(Ue(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},_e={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Qe=function(e,t){return[e[0],e[1],t[2]]},Ze=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Xe=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Ye={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Ze(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Xe(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Ze(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Qe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Xe(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Ze(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Qe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Xe(e,this)),this.update(o)}};Ye.split=Ye.splitAfter;var et=Ye;const tt=Object.assign({},Re,_e,et);tt.lookBehind=tt.before,tt.lookBefore=tt.before,tt.lookAhead=tt.after,tt.lookAfter=tt.after,tt.notIf=tt.ifNo;var nt=function(e){Object.assign(e.prototype,tt)};const rt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,at=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ot=/ /g,it=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),st=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var lt=function(e){let t=e.split(rt),n=[];t.forEach(e=>{it(e)?n.push(e):n=n.concat(e.split(at))}),n=st(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||it(e)?r.push(e):r=r.concat(e.split(ot))}),r=st(r),r};const ut=/\{([0-9]+)?(, *[0-9]*)?\}/,ct=/&&/,ht=new RegExp(/^<\s*(\S+)\s*>/),dt=e=>e.charAt(0).toUpperCase()+e.substring(1),pt=e=>e.charAt(e.length-1),mt=e=>e.charAt(0),gt=e=>e.substring(1),ft=e=>e.substring(0,e.length-1),bt=function(e){return e=gt(e),e=ft(e)},vt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===pt(e)&&(n.end=!0,e=ft(e)),"^"===mt(e)&&(n.start=!0,e=gt(e)),("["===mt(e)||"]"===pt(e))&&(n.group=null,"["===mt(e)&&(n.groupStart=!0),"]"===pt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===mt(e))){const t=ht.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===pt(e)&&(n.greedy=!0,e=ft(e)),"*"!==e&&"*"===pt(e)&&"\\*"!==e&&(n.greedy=!0,e=ft(e)),"?"===pt(e)&&(n.optional=!0,e=ft(e)),"!"===mt(e)&&(n.negative=!0,e=gt(e)),"~"===mt(e)&&"~"===pt(e)&&e.length>2&&(e=bt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===mt(e)&&")"===pt(e)){ct.test(e)?(n.choices=e.split(ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=gt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ft(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>vt(e,t))),e=""}if("/"===mt(e)&&"/"===pt(e))return e=bt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===mt(e)&&"}"===pt(e))return e=bt(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===mt(e)&&">"===pt(e))return e=bt(e),n.chunk=dt(e),n.greedy=!0,n;if("%"===mt(e)&&"%"===pt(e))return e=bt(e),n.switch=e,n}return!0===ut.test(e)&&(e=e.replace(ut,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===mt(e)?(n.tag=gt(e),n.tag=dt(n.tag),n):"@"===mt(e)?(n.method=gt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var yt=vt,wt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},kt=function(e,t={}){if(null==e||""===e)return[];"number"==typeof e&&(e=String(e));let n=lt(e);return n=n.map(e=>yt(e,t)),n=wt(n),n};const Pt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var At=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Tt=(e,t)=>-1!==e.pre.indexOf(t),Ct={hasQuote:e=>Et.test(e.pre)||xt.test(e.post),hasComma:e=>Gt(e,","),hasPeriod:e=>!0===Gt(e,".")&&!1===Gt(e,"..."),hasExclamation:e=>Gt(e,"!"),hasQuestionMark:e=>Gt(e,"?")||Gt(e,"¿"),hasEllipses:e=>Gt(e,"..")||Gt(e,"…")||Tt(e,"..")||Tt(e,"…"),hasSemicolon:e=>Gt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Nt.test(e.post)||Nt.test(e.pre),hasDash:e=>It.test(e.post)||It.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ct.hasQuotation=Ct.hasQuote;var Dt=Ct;let Ot=function(){};Ot=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(jt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Dt[t.method]&&!0===Dt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Ot(e,t,n,r)):t.choices.some(t=>Ot(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var Bt=Ot;const Vt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(zt(e,e.t).length=r-e.t),e.t=r,!0)};const Ft=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Bt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Bt(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(zt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Mt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==Bt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Lt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Bt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Bt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Wt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Jt=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},qt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Lt(e),r.implicit&&e.terms[e.t+1]&&Jt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Wt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=zt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Kt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Vt(e,a)){if(!0!==Bt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Mt(a))return null;if(!0!==e.optional)return null}else if(!qt(a))return null}else if(!qt(a))return null}else if(!qt(a))return null}else if(!Ht(a))return null}else if(!St(a))return null}else if(!$t(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},Ut=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Rt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},_t=function(e,t,n){let r=Kt(e,t,0,e.length);return r?(r=Rt(r,n),r):null};var Qt={api:nt,methods:{one:{termMethods:Dt,parseMatch:kt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=_t(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Ut(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t)}}};const Zt=/^\../,Xt=/^#./,Yt=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),Zt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var en={html:function(e){let{starts:t,ends:n}=Yt(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(nn,""),an.test(a)&&(a=" "),a=a.replace(rn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(nn,""),a="-"===a?" ":a.replace(tn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&on.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},ln={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};ln.clean=ln.normal,ln.reduced=ln.root;var un=ln;const cn={text:!0,terms:!0};let hn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const dn=function(e,t){return Object.assign({},e,t)},pn={text:e=>sn(e,{keepPunct:!0},!1),normal:e=>sn(e,dn(un.normal,{keepPunct:!0}),!1),implicit:e=>sn(e,dn(un.implicit,{keepPunct:!0}),!1),machine:e=>sn(e,hn,!1),root:e=>sn(e,dn(hn,{form:"root"}),!1),offset:e=>{let t=pn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};pn.sentences=pn.sentence,pn.clean=pn.normal,pn.reduced=pn.root;const mn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},cn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&pn[o]&&(a[o]=pn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};mn.data=mn.json;var gn=mn,fn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const bn="";var vn={green:e=>""+e+bn,red:e=>""+e+bn,blue:e=>""+e+bn,magenta:e=>""+e+bn,cyan:e=>""+e+bn,yellow:e=>""+e+bn,black:e=>""+e+bn,dim:e=>""+e+bn,i:e=>""+e+bn},yn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(vn.blue("\n ──────")),t.forEach(e=>{console.log(vn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=vn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=vn.blue(" │ ")+vn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return vn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},wn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(vn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(vn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(vn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(vn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},kn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${vn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const Pn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var An=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},En={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&un.hasOwnProperty(e)?t=Object.assign({},un[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Gn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Tn=function(e,t){let n=Gn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},Cn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Gn,splitAll:Tn}}},Dn=function(e,t){let n=e.concat(t),r=Gn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>In(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Bn=function(e,t){let n=Gn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>In(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},zn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},$n={union:function(e){e=Vn(e,this);let t=Dn(this.fullPointer,e.fullPointer);return t=zn(t,this.document),this.toView(t)}};$n.and=$n.union,$n.intersection=function(e){e=Vn(e,this);let t=Bn(this.fullPointer,e.fullPointer);return t=zn(t,this.document),this.toView(t)},$n.not=function(e){e=Vn(e,this);let t=On(this.fullPointer,e.fullPointer);return t=zn(t,this.document),this.toView(t)},$n.difference=$n.not,$n.complement=function(){let e=this.all(),t=On(e.fullPointer,this.fullPointer);return t=zn(t,this.document),this.toView(t)},$n.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Dn(e,[t])}),e=zn(e,this.document),this.update(e)};var Fn={methods:Cn,api:function(e){Object.assign(e.prototype,$n)}},Sn=function(e,t){const n=t.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo])}),e};function Hn(e,t,n){return e.splice(t,1,...n),e}const Mn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Ln=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var Wn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let a=Object.assign({},e);a.regs=a.regs.slice(0),r=r.map(t=>Ln(e.regs[n],t)),a.regs=Hn(a.regs,n,r),t.push(a)})}t.push(e)}),t};const Jn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var qn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=Jn(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Jn(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e},Kn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t},Un=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})},Rn=function(e,t){for(let n=0;ne.needs.every(e=>r.has(e))),e[n]=e[n].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))}return e},_n=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},Qn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #"));let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const h=e=>""+e+"";for(;ia+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>r&&i{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Sn(e,t),e=Wn(e);let n=(e=qn(e)).filter(e=>0===e.needs.length),r=Kn(e);return delete r["#Noun"],delete r["#Verb"],{index:r,always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Un(a,t.index);return o=Rn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),_n(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;const l="undefined"!=typeof process&&process.env?process.env:self.env||{};return l.DEBUG_TAGS&&console.log(`\n → ${e.length} corrections:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let a=e.reason||e.match;l.DEBUG_TAGS&&Qn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Zn(u,e.tag,r))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,a),1===u.length&&"Noun"===e.tag&&u[0].text&&null!==u[0].text.match(/..s$/)&&i(u,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Yn=/ /,er=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},tr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(25)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Yn.test(t))!function(e,t,n,r){let a=t.split(Yn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),tr(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nnr(e,t,n,r))};var rr=nr,ar=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>or({id:e})),t}return[or({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},ur=e=>"[object Array]"===Object.prototype.toString.call(e),cr=e=>(e=e||"").trim(),hr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||ir.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:sr(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=or({});return e.forEach(e=>{if((e=or(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(lr(t=e).forEach(or),t);var t},dr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return lr(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},pr=function(e){let t=lr(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},mr={text:dr,txt:dr,array:pr,flat:pr},gr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(dr(e,!0)),null):mr.hasOwnProperty(t)?mr[t](e):e},fr=e=>{lr(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},br=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=cr(e),!br.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||or({});return new g$1(t)}add(e,t={}){if(ur(e))return e.forEach(e=>this.add(cr(e),t)),this;e=cr(e);let n=or({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=cr(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return lr(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=lr(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return lr(this.json)}fillDown(){var e;return e=this.json,lr(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else ur(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){fr(this.json);let e=lr(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return fr(this.json),gr(this.json,e)}debug(){return fr(this.json),gr(this.json,"debug"),this}}const vr=function(e){let t=hr(e);return new g$1(t)};vr.prototype.plugin=function(e){e(this)};var yr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const wr=function(e){if(yr.hasOwnProperty(e.id))return yr[e.id];if(yr.hasOwnProperty(e.is))return yr[e.is];let t=e._cache.parents.find(e=>yr[e]);return yr[t]};var kr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:wr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const Pr=function(e){return e?"string"==typeof e?[e]:e:[]};var Ar=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=Pr(e[t].children),e[t].not=Pr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},jr={one:{setTag:rr,unTag:ar,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=Ar(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return kr(n)}}};const Er=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var xr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Er(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Er(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},Nr=function(e){Object.assign(e.prototype,xr)},Ir={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Gr=new Set(["Auxiliary","Possessive"]);var Tr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(Gr.has(e)||!t.hasOwnProperty(n))return 1;if(Gr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:jr,api:Nr,lib:Ir};const Cr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Dr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Or=function(e){let t=[],n=e.split(Dr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Zr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,Xr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Yr=/['’]/,ea=/^[a-z]\.([a-z]\.)+/i,ta=/^[-+.][0-9]/,na=/^'[0-9]{2}/;var ra=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Zr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!ta.test(e)?"'"===n&&na.test(e)?(n="",t):"":(n="",t)))).replace(Xr,a=>(r=a,Yr.test(a)&&/[sn]['’]$/.test(t)&&!1===Yr.test(n)?(r=r.replace(Yr,""),"'"):!0===ea.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},aa=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const oa=/([A-Z]\.)+[A-Z]?,?$/,ia=/^[A-Z]\.,?$/,sa=/[A-Z]{2,}('s|,)?$/,la=/([a-z]\.)+[a-z]\.?$/;var ua=function(e){return function(e){return!0===oa.test(e)||!0===la.test(e)||!0===ia.test(e)||!0===sa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},ca=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=aa(r),r=n(r,t),r=ua(r),e.normal=r},ha={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Mr,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(_r);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Kr(n),n=Jr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=ra(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ca(e,t)}),n})}}}},da={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let pa={},ma={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{pa[t]=!0,ma[t]="Abbreviation",void 0!==e[1]&&(ma[t]=[ma[t],e[1]])})});var ga=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mid","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let fa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ba={};Object.keys(fa).forEach((function(e){fa[e].split("").forEach((function(t){ba[t]=e}))}));const va=/\//,ya=/[a-z]\.[a-z]/i,wa=/[0-9]/;var ka=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),va.test(n)&&!ya.test(n)&&!wa.test(n)){let t=n.split(va);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const Pa=/^\p{Letter}+-\p{Letter}+$/u;var Aa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),Pa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ja=function(e){let t=0,n=0,r=e.document;for(let e=0;eEa(e,ka),machine:e=>Ea(e,Aa),normal:e=>Ea(e,ca),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const Ga={safe:!0,min:3};var Ta={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=Na},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},Ga,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Ia(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};I.extend(se),I.extend(Nn),I.extend(Qt),I.extend(Fn),I.extend(Tr),I.plugin(Te),I.extend(xa),I.plugin(T),I.extend(Le),I.extend(Ta),I.extend(Ve),I.extend(Xn);var Ca={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Da={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shiba,y1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba,c",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7S;1:6L;2:7O;3:7Z;4:7Y;5:82;6:6X;7:7I;8:75;9:6T;a7Kb6Wc5Vd5Ae52f4Eg44h3Wi3Qj3Ok3Ml3Cm33n2Zo2Vp21ques7Mr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4U;aHeaGhEiCoAre7M;nd0rA;k,ry;mp,nApe,re,sh,tne84;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra83;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l3A;pAsh0;da4gra50;aLeKhrJiIoHrDuBwiAy4O;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Sss,t76u2;ck,e,me,p,re;e1Now,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6CpPtFuBwA;ear,it2;b1Yit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6CeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6MrAy;ay,e12ink6u3;n,r6Ite;n,rk;ee1Fow;e0Fi6o43;eep,iA;ce,p,t;ateboa5ZiA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i33;pe,re;aBed,nArv16t;se,t1Y;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0J;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1C;as5EcOdo,el,fMgLje5lKmInHo0VpFque7sCturn,vAwa5C;eAi1J;al,r1;er5JoBt,uA;lt,me;l5Hrt;air,eaAly,o3Z;l,t;dezvo26t;aAedy;ke,rk;ea1i3F;a50ist0r4E;act5Eorm,uA;nd,se;aAo4Xru8;ll;ck,i1ke,l48nAtV;ge,k;a00eXhViSlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5E;!me;ed,ss;ce,de;sAy;er4Us;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4I;aCeBuA;g,n9;ad;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Um8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2T;d0ie4S;ze;je5;a3LeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Unit44p,ve;lk,n2Yrr43x;asu12n3OrAss;ge,it;il,nBp,rk2ZsAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o25;e2DiAno3C;ck,ll,ss;am,o17uA;d9i3;mpEnBr36ssA;ue;cr19dex,fluBha6k,se1VterviAvoi3;ew;en3;a5le1Q;aEeCiBoAu3S;ld,no1Tok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo30m,ne3Hve7;!le;aIeek,lo3FoHrCuA;arAe3Ei0Nn;antee,d;aCiBoAumb6;om,u2B;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Fd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Om;us;aCe0Kip,oAy;at,od,wA;!er;g,re,sh,vo0Z;eDgClBnAre,sh,t,x;an3i0F;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo21;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0J;en3me2J;el,han9;caAtima4;pe;count0d,gine0vy;aSeMiGoFrBuAye;b,mp,pli24;aCeBiA;ft,nk,ve;am,ss;ft,in;cu05d9ubt;p,sCvA;e,iAor3;de;char9liBpA;at2lay;ke;al,ba4cDfeClBma0Wpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou08romi1;me1C;a06e1Bu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi09nBrAse,uffe0F;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aTeQiPlMoIrDuAypa0N;bb6ck6dgBff0lArn,st,zz;ly;et;anDeaCid9oadA;ca7;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:56;1:4F;2:55;3:4S;4:4Q;5:4L;6:4P;7:4Z;8:4G;a4Pb44c37d2Ue2Nf2Dg22h1Qin1Njel3k1Ll1Im19n16o12p0Lqu0Kr0BsStJuGvCw9;a9ha39om29;f1i4Tt0Cy9;! arou4C;arn4DeAo9;cabu05l50;gIr9;di6t1H;nc32p2PrAs 9;do3Ps53;bani2in0; rex,aGeFhEiCoBrAu9v show;m2Hn5rntIto15;agedy,ibe,o43;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3PrAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40me15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,ph9;one;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Dde0Ce07f00gZhomel09iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b01nt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6ist00o4qua3ta2u1;bordina0Cper6;bRndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laVnt0p1;resentaUublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aFe4in3o1;biEdernUr1;al,t0;iature,or;di1tr03;an,um;attGiber0;stice,veni8;de0mpressionNn1;cumbXdividu0nocX;enious,old;a5e2i1luid;ne;llow,m1;a1inH;le;t,vo1;riIuriI;l3x1;c1ecu7pL;ess;d1iE;er;mographKriva3;hiCo1rude;m3n2opera1;tive;cre8stituFtemporary;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem5d3l2nim0rab;al;ert;olesc1ult;ent;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3C;1:3G;2:3R;3:2E;a3Vb3Dc31d2Re2Kf28g1Wh1Mi1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3B;a8e6hi1Hi4ry;ck0Dde,l4n2ry,se;d,y;a4i3U;k,ry;nti35ry;a4erda1ulgar;gue,in,st;g0pcomi32;a7en2Uhi6i5ough,r4;anqu29en2ue;dy,g37me0ny,r03;ck,rs25;ll,me,rt,wd3J;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Xrre25;sta23t3;a8e7iff,r5u4;pUr2;a4ict,o2Q;ig2Xn0N;a2ep,rn;le,rk;e1Pi2Xright0;ci1Wft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Om4;!y;ek,nd2U;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Jxy;ce,y;d,fe,int0l1Fv0V;a9e7i6o4ude;mantic,o17sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai1i4;ck,et;hoBi1DlAo9r6u4;ny,r4;e,p3;egna1ic5o4;fouSud;ey,k0;liXor;ain,easa1;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Wsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Zte;ist,o2;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Hn5o13u4ve0w0Xy0L;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1C;cy,ll,n4;s7t4;e4ima5;llege1rmedia4;te;ecu4ta1;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita1;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a1d2;a4o4;st0;t3uiS;u2y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou2;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia1;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o2;ck,nd;g,tt4;er;d,ld,w2;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Oa=36,Ba="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Va=Ba.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var za=function(e){if(void 0!==Va[e])return Va[e];let t=0,n=1,r=Oa,a=1;for(;n=0;n--,a*=Oa){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},$a=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Sa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ha(Da[e]);Ja.test(e)?Object.keys(t).forEach(t=>{if(Ka[t]=e,"Noun|Verb"===e){let e=Wa(t,Ua);Ka[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{qa[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","qa[e]="Emoticon"),delete qa[""],delete qa.null,delete qa[" "];const Ra="Adjective";var _a={beforeTags:{Determiner:Ra,Possessive:Ra},afterTags:{Adjective:Ra},beforeWords:{seem:Ra,seemed:Ra,seems:Ra,feel:Ra,feels:Ra,felt:Ra,appear:Ra,appears:Ra,appeared:Ra,also:Ra,over:Ra,under:Ra,too:Ra,it:Ra,but:Ra,still:Ra,really:Ra,quite:Ra,well:Ra,very:Ra,deeply:Ra,profoundly:Ra,extremely:Ra,so:Ra,badly:Ra,mostly:Ra,totally:Ra,awfully:Ra,rather:Ra,nothing:Ra,something:Ra,anything:Ra},afterWords:{too:Ra,also:Ra,or:Ra}};const Qa="Gerund";var Za={beforeTags:{Adverb:Qa,Preposition:Qa,Conjunction:Qa},afterTags:{Adverb:Qa,Possessive:Qa,Person:Qa,Pronoun:Qa,Determiner:Qa,Copula:Qa,Preposition:Qa,Conjunction:Qa,Comparative:Qa},beforeWords:{been:Qa,keep:Qa,continue:Qa,stop:Qa,am:Qa,be:Qa,me:Qa,began:Qa,start:Qa,starts:Qa,started:Qa,stops:Qa,stopped:Qa,help:Qa,helps:Qa,avoid:Qa,avoids:Qa,love:Qa,loves:Qa,loved:Qa,hate:Qa,hates:Qa,hated:Qa},afterWords:{you:Qa,me:Qa,her:Qa,him:Qa,them:Qa,their:Qa,it:Qa,this:Qa,there:Qa,on:Qa,about:Qa,for:Qa}},Xa={beforeTags:Object.assign({},_a.beforeTags,Za.beforeTags,{PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},_a.afterTags,Za.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},_a.beforeWords,Za.beforeWords,{is:"Adjective",was:"Adjective"}),afterWords:Object.assign({},_a.afterWords,Za.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ya="Singular";var eo={beforeTags:{Determiner:Ya,Possessive:Ya,Acronym:Ya,Noun:Ya,Adjective:Ya,PresentTense:Ya,Gerund:Ya,PastTense:Ya,Infinitive:Ya,Date:Ya},afterTags:{Value:Ya,Modal:Ya,Copula:Ya,PresentTense:Ya,PastTense:Ya,Demonym:Ya},beforeWords:{the:Ya,with:Ya,without:Ya,of:Ya,for:Ya,any:Ya,all:Ya,on:Ya,cut:Ya,cuts:Ya,save:Ya,saved:Ya,saves:Ya,make:Ya,makes:Ya,made:Ya,minus:Ya,plus:Ya,than:Ya,another:Ya,versus:Ya,neither:Ya,favorite:Ya,best:Ya,daily:Ya,weekly:Ya,linear:Ya,binary:Ya,mobile:Ya,lexical:Ya,technical:Ya,computer:Ya,scientific:Ya,formal:Ya},afterWords:{of:Ya,system:Ya,aid:Ya,method:Ya,utility:Ya,tool:Ya,reform:Ya,therapy:Ya,philosophy:Ya,room:Ya,authority:Ya,says:Ya,said:Ya,wants:Ya,wanted:Ya}};const to={beforeTags:{Determiner:void 0}};var no={beforeTags:Object.assign({},_a.beforeTags,eo.beforeTags,to.beforeTags),afterTags:Object.assign({},_a.afterTags,eo.afterTags),beforeWords:Object.assign({},_a.beforeWords,eo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},_a.afterWords,eo.afterWords)};const ro={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},ao={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},oo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},io={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var so={beforeTags:Object.assign({},_a.beforeTags,ro),afterTags:Object.assign({},_a.afterTags,ao),beforeWords:Object.assign({},_a.beforeWords,oo),afterWords:Object.assign({},_a.afterWords,io)};const lo="Infinitive";var uo={beforeTags:{Modal:lo,Adverb:lo,Negative:lo,Plural:lo},afterTags:{Determiner:lo,Adverb:lo,Possessive:lo,Preposition:lo},beforeWords:{i:lo,we:lo,you:lo,they:lo,to:lo,please:lo,will:lo,have:lo,had:lo,would:lo,could:lo,should:lo,do:lo,did:lo,does:lo,can:lo,must:lo,us:lo,me:lo,he:lo,she:lo,it:lo,being:lo},afterWords:{the:lo,me:lo,you:lo,him:lo,her:lo,them:lo,it:lo,a:lo,an:lo,up:lo,down:lo,by:lo,out:lo,off:lo,when:lo,all:lo,to:lo,because:lo,although:lo,before:lo,how:lo,otherwise:lo,though:lo,yet:lo}};const co={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ho={beforeTags:Object.assign({},_a.beforeTags,uo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},_a.afterTags,uo.afterTags,co.afterTags),beforeWords:Object.assign({},_a.beforeWords,uo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},_a.afterWords,uo.afterWords,{to:void 0})};const po={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},mo={},go={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},fo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var bo={beforeTags:Object.assign({},Za.beforeTags,eo.beforeTags,po),afterTags:Object.assign({},Za.afterTags,eo.afterTags,mo),beforeWords:Object.assign({},Za.beforeWords,eo.beforeWords,go),afterWords:Object.assign({},Za.afterWords,eo.afterWords,fo)},vo={beforeTags:Object.assign({},uo.beforeTags,eo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},uo.afterTags,eo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},uo.beforeWords,eo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},uo.afterWords,eo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const yo="Person";var wo={beforeTags:{Honorific:yo,Person:yo,Preposition:yo},afterTags:{Person:yo,ProperNoun:yo,Verb:yo},ownTags:{ProperNoun:yo},beforeWords:{hi:yo,hey:yo,yo:yo,dear:yo,hello:yo},afterWords:{said:yo,says:yo,told:yo,tells:yo,feels:yo,felt:yo,seems:yo,thinks:yo,thought:yo,spends:yo,spendt:yo,plays:yo,played:yo,sing:yo,sang:yo,learn:yo,learned:yo,wants:yo,wanted:yo}};const ko="Month",Po={beforeTags:{Date:ko,Value:ko},afterTags:{Date:ko,Value:ko},beforeWords:{by:ko,in:ko,on:ko,during:ko,after:ko,before:ko,between:ko,until:ko,til:ko,sometime:ko,of:ko,this:ko,next:ko,last:ko,previous:ko,following:ko},afterWords:{sometime:ko,in:ko,of:ko,until:ko,the:ko}};var Ao={beforeTags:Object.assign({},wo.beforeTags,Po.beforeTags),afterTags:Object.assign({},wo.afterTags,Po.afterTags),beforeWords:Object.assign({},wo.beforeWords,Po.beforeWords),afterWords:Object.assign({},wo.afterWords,Po.afterWords)};const jo={Place:"Place"},Eo={Place:"Place",Abbreviation:"Place"},xo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},No={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"},Io={"Adj|Gerund":Xa,"Adj|Noun":no,"Adj|Past":so,"Adj|Present":ho,"Noun|Verb":vo,"Noun|Gerund":bo,"Person|Noun":{beforeTags:Object.assign({},eo.beforeTags,wo.beforeTags),afterTags:Object.assign({},eo.afterTags,wo.afterTags),beforeWords:Object.assign({},eo.beforeWords,wo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},eo.afterWords,wo.afterWords)},"Person|Date":Ao,"Person|Verb":{beforeTags:Object.assign({},wo.beforeTags,uo.beforeTags),afterTags:Object.assign({},wo.afterTags,uo.afterTags),beforeWords:Object.assign({},wo.beforeWords,uo.beforeWords),afterWords:Object.assign({},wo.afterWords,uo.afterWords)},"Person|Place":{beforeTags:Object.assign({},jo,wo.beforeTags),afterTags:Object.assign({},Eo,wo.afterTags),beforeWords:Object.assign({},xo,wo.beforeWords),afterWords:Object.assign({},No,wo.afterWords)}},Go=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};Io["Plural|Verb"]={beforeWords:Go(Io["Noun|Verb"].beforeWords,{}),afterWords:Go(Io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Go(Io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Go(Io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var To=Io;const Co="Adjective",Do="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Plural",Fo="Actor",So="Verb",Ho="Noun",Mo="LastName",Lo="Modal",Wo="Participle";var Jo=[null,null,{ea:Bo,ia:Ho,ic:Co,ly:zo,"'n":So,"'t":So},{oed:Vo,ued:Vo,xed:Vo," so":zo,"'ll":Lo,"'re":"Copula",azy:Co,eer:Ho,end:So,ped:Vo,ffy:Co,ify:Do,ing:"Gerund",ize:Do,ibe:Do,lar:Co,mum:Co,nes:Oo,nny:Co,ous:Co,que:Co,rol:Bo,sis:Bo,ogy:Bo,oid:Bo,ian:Bo,zes:Oo,eld:Vo,ken:Wo,ven:Wo,ten:Wo,ect:Do,ict:Do,ign:Do,ful:Co,bal:Co},{amed:Vo,aped:Vo,ched:Vo,lked:Vo,rked:Vo,reed:Vo,nded:Vo,mned:Co,cted:Vo,dged:Vo,ield:Bo,akis:Mo,cede:Do,chuk:Mo,czyk:Mo,ects:Oo,ends:So,enko:Mo,ette:Bo,wner:Bo,fies:Oo,fore:zo,gate:Do,gone:Co,ices:$o,ints:$o,ruct:Do,ines:$o,ions:$o,less:Co,llen:Co,made:Co,nsen:Mo,oses:Oo,ould:Lo,some:Co,sson:Mo,tion:Bo,tage:Ho,ique:Bo,tive:Co,tors:Ho,vice:Bo,lier:Bo,fier:Bo,wned:Vo,gent:Bo,tist:Bo,pist:Bo,rist:Bo,mist:Bo,yist:Bo,vist:Bo,lite:Bo,site:Bo,rite:Bo,mite:Bo,bite:Bo,mate:Bo,date:Bo,ndal:Bo,vent:Bo,uist:Bo,gist:Bo,note:Bo,cide:Bo,wide:Co,vide:Do,ract:Do,duce:Do,pose:Do,eive:Do,lyze:Do,lyse:Do,iant:Co,nary:Co},{elist:Bo,holic:Bo,phite:Bo,tized:Vo,urned:Vo,eased:Vo,ances:$o,bound:Co,ettes:$o,fully:zo,ishes:Oo,ities:$o,marek:Mo,nssen:Mo,ology:Ho,osome:Bo,tment:Bo,ports:$o,rough:Co,tches:Oo,tieth:"Ordinal",tures:$o,wards:zo,where:zo,archy:Ho,pathy:Ho,opoly:Ho,embly:Ho,phate:Ho,ndent:Bo,scent:Bo,onist:Bo,anist:Bo,alist:Bo,olist:Bo,icist:Bo,ounce:Do,iable:Co,borne:Co,gnant:Co,inant:Co,igent:Co,atory:Co,rient:Bo,dient:Bo},{auskas:Mo,parent:Bo,cedent:Bo,ionary:Bo,cklist:Bo,keeper:Fo,logist:Fo,teenth:"Value"},{opoulos:Mo,borough:"Place",sdottir:Mo}];const qo="Adjective",Ko="Noun",Uo="Verb";var Ro=[null,null,{},{neo:Ko,bio:Ko,"de-":Uo,"re-":Uo,"un-":Uo},{anti:Ko,auto:Ko,faux:qo,hexa:Ko,kilo:Ko,mono:Ko,nano:Ko,octa:Ko,poly:Ko,semi:qo,tele:Ko,"pro-":qo,"mis-":Uo,"dis-":Uo,"pre-":qo},{anglo:Ko,centi:Ko,ethno:Ko,ferro:Ko,grand:Ko,hepta:Ko,hydro:Ko,intro:Ko,macro:Ko,micro:Ko,milli:Ko,nitro:Ko,penta:Ko,quasi:qo,radio:Ko,tetra:Ko,"omni-":qo,"post-":qo},{pseudo:qo,"extra-":qo,"hyper-":qo,"inter-":qo,"intra-":qo,"deca-":qo},{electro:Ko}];const _o="Adjective",Qo="Infinitive",Zo="PresentTense",Xo="Singular",Yo="PastTense",ei="Adverb",ti="Expression",ni="Actor",ri="Verb",ai="Noun",oi="LastName";var ii={a:[[/.[aeiou]na$/,ai,"tuna"],[/.[oau][wvl]ska$/,oi],[/.[^aeiou]ica$/,Xo,"harmonica"],[/^([hyj]a+)+$/,ti,"haha"]],c:[[/.[^aeiou]ic$/,_o]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Yo,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Yo,"rammed"],[/.[aeiou][sg]hed$/,Yo,"gushed"],[/.[aeiou]red$/,Yo,"hired"],[/.[aeiou]r?ried$/,Yo,"hurried"],[/[^aeiou]ard$/,Xo,"steward"],[/[aeiou][^aeiou]id$/,_o,""],[/.[vrl]id$/,_o,"livid"],[/..led$/,Yo,"hurled"],[/.[iao]sed$/,Yo,""],[/[aeiou]n?[cs]ed$/,Yo,""],[/[aeiou][rl]?[mnf]ed$/,Yo,""],[/[aeiou][ns]?c?ked$/,Yo,"bunked"],[/[aeiou]gned$/,Yo],[/[aeiou][nl]?ged$/,Yo],[/.[tdbwxyz]ed$/,Yo],[/[^aeiou][aeiou][tvx]ed$/,Yo],[/.[cdflmnprstv]ied$/,Yo,"emptied"]],e:[[/.[lnr]ize$/,Qo,"antagonize"],[/.[^aeiou]ise$/,Qo,"antagonise"],[/.[aeiou]te$/,Qo,"bite"],[/.[^aeiou][ai]ble$/,_o,"fixable"],[/.[^aeiou]eable$/,_o,"maleable"],[/.[ts]ive$/,_o,"festive"],[/[a-z]-like$/,_o,"woman-like"]],h:[[/.[^aeiouf]ish$/,_o,"cornish"],[/.v[iy]ch$/,oi,"..ovich"],[/^ug?h+$/,ti,"ughh"],[/^uh[ -]?oh$/,ti,"uhoh"],[/[a-z]-ish$/,_o,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,oi,"polish-male"]],k:[[/^(k){2}$/,ti,"kkkk"]],l:[[/.[gl]ial$/,_o,"familial"],[/.[^aeiou]ful$/,_o,"fitful"],[/.[nrtumcd]al$/,_o,"natal"],[/.[^aeiou][ei]al$/,_o,"familial"]],m:[[/.[^aeiou]ium$/,Xo,"magnesium"],[/[^aeiou]ism$/,Xo,"schism"],[/^[hu]m+$/,ti,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,_o,"republican"],[/[^aeiou]ician$/,ni,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,ti,"noooo"],[/^(yo)+$/,ti,"yoo"],[/^wo{2,}[pt]?$/,ti,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Xo],[/[^i]fer$/,Qo],[/.[^aeiou][ao]pher$/,ni],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,_o],[/[aeiou].*ist$/,_o],[/^[a-z]et$/,ri]],s:[[/.[^aeiou]ises$/,Zo],[/.[rln]ates$/,Zo],[/.[^z]ens$/,ri],[/.[lstrn]us$/,Xo],[/.[aeiou]sks$/,Zo],[/.[aeiou]kes$/,Zo],[/[aeiou][^aeiou]is$/,Xo],[/[a-z]'s$/,ai],[/^yes+$/,ti]],v:[[/.[^aeiou][ai][kln]ov$/,oi]],y:[[/.[cts]hy$/,_o],[/.[st]ty$/,_o],[/.[tnl]ary$/,_o],[/.[oe]ry$/,Xo],[/[rdntkbhs]ly$/,ei],[/.(gg|bb|zz)ly$/,_o],[/...lly$/,ei],[/.[gk]y$/,_o],[/[bszmp]{2}y$/,_o],[/.[ai]my$/,_o],[/[ea]{2}zy$/,_o],[/.[^aeiou]ity$/,Xo]]};const si="Verb",li="Noun";var ui={leftTags:[["Adjective",li],["Possessive",li],["Determiner",li],["Adverb",si],["Pronoun",si],["Value",li],["Ordinal",li],["Modal",si],["Superlative",li],["Demonym",li],["Honorific","Person"]],leftWords:[["i",si],["first",li],["it",si],["there",si],["not",si],["because",li],["if",li],["but",li],["who",si],["this",li],["his",li],["when",li],["you",si],["very","Adjective"],["old",li],["never",si],["before",li],["a","Singular"],["the",li],["been",si]],rightTags:[["Copula",li],["PastTense",li],["Conjunction",li],["Modal",li]],rightWords:[["there",si],["me",si],["man","Adjective"],["only",si],["him",si],["it",si],["were",li],["took",li],["himself",si],["went",li],["who",li],["jr","Person"]]},ci={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},hi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},di={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},pi={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},mi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const gi=/^.([0-9]+)/;var fi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(gi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(gi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},vi=/^([0-9]+)/,yi=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(vi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(vi,"")]}(n[0],n[1])})};var wi=function(e={}){return(e=Object.assign({},e)).rules=yi(e.rules),e.rules=bi(e.rules),e.rev&&(e.rev=yi(e.rev),e.rev=bi(e.rev)),e.exceptions=yi(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},ki=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const Pi=wi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),Ai=wi(pi),ji=wi(hi),Ei=wi(di),xi=ki(Pi),Ni=ki(Ai),Ii=ki(ji),Gi=ki(Ei),Ti=wi(ci),Ci=wi(mi);var Di={fromPast:Pi,fromPresent:Ai,fromGerund:ji,fromParticiple:Ei,toPast:xi,toPresent:Ni,toGerund:Ii,toParticiple:Gi,toComparative:Ti,toSuperlative:Ci,fromComparative:ki(Ti),fromSuperlative:ki(Ci)},Oi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),Bi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Vi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(zi[t].forEach(n=>e[n]=t),e),{});var $i=zi,Fi=function(e){let t=e.substring(e.length-3);if(!0===$i.hasOwnProperty(t))return $i[t];let n=e.substring(e.length-2);return!0===$i.hasOwnProperty(n)?$i[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Si={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Hi=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Fi(e)),Si.hasOwnProperty(e))c=Si[e];else if("Participle"===n)c=fi(l,i);else if("PastTense"===n)c=fi(l,r);else if("PresentTense"===n)c=fi(l,a);else{if("Gerund"!==n)return e;c=fi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Mi=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:fi(i,n),PresentTense:fi(i,r),Gerund:fi(i,a),FutureTense:"will "+e},u=fi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Li=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Wi="ically",Ji=new Set(["analyt"+Wi,"chem"+Wi,"class"+Wi,"clin"+Wi,"crit"+Wi,"ecolog"+Wi,"electr"+Wi,"empir"+Wi,"frant"+Wi,"grammat"+Wi,"ident"+Wi,"ideolog"+Wi,"log"+Wi,"mag"+Wi,"mathemat"+Wi,"mechan"+Wi,"med"+Wi,"method"+Wi,"method"+Wi,"mus"+Wi,"phys"+Wi,"phys"+Wi,"polit"+Wi,"pract"+Wi,"rad"+Wi,"satir"+Wi,"statist"+Wi,"techn"+Wi,"technolog"+Wi,"theoret"+Wi,"typ"+Wi,"vert"+Wi,"whims"+Wi]),qi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ki=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ui={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ri=function(e){return e.endsWith("ly")?Ji.has(e)?e.replace(/ically/,"ical"):Ki.has(e)?null:Ui.hasOwnProperty(e)?Ui[e]:Li(e,qi)||e:null};const _i=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Qi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Zi=function(e){if(Qi.hasOwnProperty(e))return Qi[e];let t=Li(e,_i);return t||e+"ly"};const Xi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Yi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},es=new Set(["terrible","annoying"]),ts=function(e,t){const n=t.two.models.toSuperlative;return fi(e,n)},ns=function(e,t){const n=t.two.models.toComparative;return fi(e,n)};var rs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},as={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){let n=e[t];const r=new Set(["may","april","august","jan"]);return!(!n||"like"===n.normal||r.has(n.normal)||n.tags.has("Place")||n.tags.has("Date")||e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===rs.hasOwnProperty(i)&&rs[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Wa,nounToSingular:Vi,verbToInfinitive:Hi,getTense:Fi,verbConjugate:Mi,adjToSuperlative:ts,adjToComparative:ns,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return fi(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return fi(e,n)},advToAdjective:Ri,adjToAdverb:Zi,adjToNoun:function(e){if(Yi.hasOwnProperty(e))return Yi[e];if(es.has(e))return null;let t=Li(e,Xi);return t||e+"ness"}}}},os=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const is=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var ss=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=is(n,"Infinitive","PastTense"),Object.assign(s,l),l=is(r,"Infinitive","Verb"),Object.assign(s,l),l=is(a,"Infinitive","Gerund"),Object.assign(s,l),l=is(o,"Adjective","Superlative"),Object.assign(s,l),l=is(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let ls={two:{models:Di}};const us={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},cs=function(e,t){const n={model:t,methods:as};let{lex:r,_multi:a}=as.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},hs=function(e,t,n){let r=Mi(e,ls);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ds=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=us[o],"Noun|Verb"!==o&&"Person|Verb"!==o||hs(a,r,!1),"Adj|Present"===o&&(hs(a,r,!0),function(e,t,n){let r=ts(e,n);t[r]=t[r]||"Superlative";let a=ns(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Hi(a,ls,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Hi(a,ls,"PastTense");r[e]||(n[e]="Infinitive")}}),t=cs(n,t)};let ps={one:{_multiCache:{},lexicon:qa},two:{irregularPlurals:Ca,models:Di,suffixPatterns:Jo,prefixPatterns:Ro,endsWith:ii,neighbours:ui,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Ka,clues:To,uncountable:{},orgWords:Oi}};ps=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=cs(e.one.lexicon,e)).one.lexicon,e),e=ds(e.two.switches,e),e=ss(e),e=os(e)}(ps);var ms=ps;const gs=/^(under|over|mis|re|un|dis|semi)-?/;var fs=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gs.test(a.normal)){let e=a.normal.replace(gs,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},bs=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(25)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const vs={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ys=new Set(["formulas","koalas","israelis","menus"]),ws=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ks=function(e){if(!e||e.length<=3)return!1;if(ys.has(e))return!0;let t=e[e.length-1];return vs.hasOwnProperty(t)?vs[t].find(t=>e.endsWith(t)):"s"===t&&!ws.find(t=>e.endsWith(t))};const Ps=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var As=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ks(e.normal)?bs(e,"Plural","3-plural-guess"):bs(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Fi(e.normal);t&&bs(e,t,"3-verb-tense-guess")}}(r)};const js=/^\p{Lu}[\p{Ll}'’]/u,Es=/[0-9]/,xs=["Date","Month","WeekDay","Unit"],Ns=/^[IVXLCDM]{2,}$/,Is=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Gs={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Ts=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===js.test(o)&&!1===Es.test(o)?xs.find(e=>r.tags.has(e))?null:(As(e,t,n),r.tags.has("Noun")||r.tags.clear(),bs(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Ns.test(o)&&Is.test(o)&&!Gs[r.normal]?(bs(r,"RomanNumeral","2-xvii"),!0):null};const Cs=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Ds=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Cs(r.normal,n.two.suffixPatterns);if(null!==e)return bs(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Cs(r.implicit,n.two.suffixPatterns),null!==e))return bs(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Os=/['‘’‛‵′`´]/,Bs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return bs(r,e,"2-prefix"),r.confidence=.5,!0}return null};const $s=new Set(["in","on","by","for","during","within","before","after","of","this","next","last","may"]),Fs=function(e){return!(!e||!$s.has(e.normal)&&!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")))},Ss=function(e){return!!e&&!!e.tags.has("Ordinal")};var Hs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){if(Fs(e[t-1])||Fs(e[t+1]))return bs(n,"Year","2-tagYear");if(r>1950&&r<2025&&(Ss(e[t-1])||Ss(e[t+1])))return bs(n,"Year","2-tagYear-close")}}return null};const Ms=/^[A-Z]('s|,)?$/,Ls=/^[A-Z-]+$/,Ws=/([A-Z]\.)+[A-Z]?,?$/,Js=/[A-Z]{2,}('s|,)?$/,qs=/([a-z]\.)+[a-z]\.?$/,Ks={I:!0,A:!0};var Us=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ls.test(n)||n.length>5||Ks.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ws.test(n)&&!0!==qs.test(n)&&!0!==Ms.test(n)&&!0!==Js.test(n))}(r,n)?(r.tags.clear(),bs(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ks.hasOwnProperty(r.text)&&Ms.test(r.text)?(r.tags.clear(),bs(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(bs(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ls.test(r.text)&&r.text.length<=6?(bs(r,"Acronym","3-titlecase-acronym"),!0):null};const Rs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},_s=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Qs=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Rs(e[t-1],a),l=l||Rs(e[t+1],o),l=l||_s(e[t-1],r),l=l||_s(e[t+1],i),l)return bs(s,l,"3-[neighbour]"),As(e,t,n),e[t].confidence=.2,!0}return null};const Zs=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Xs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Zs(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Zs(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ys=function(e,t,n){0===e[t].tags.size&&(bs(e[t],"Noun","3-[fallback]"),As(e,t,n),e[t].confidence=.1)};const el=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,tl=(e,t,n)=>0!==t||e[1]?null:n;var nl={"Adj|Gerund":(e,t)=>el(e,t),"Adj|Noun":(e,t)=>el(e,t),"Adj|Past":(e,t)=>el(e,t),"Adj|Present":(e,t)=>el(e,t),"Noun|Gerund":(e,t)=>el(e,t),"Noun|Verb":(e,t)=>el(e,t)||tl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>el(e,t)||tl(e,t,"PresentTense"),"Person|Noun":(e,t)=>el(e,t),"Person|Verb":(e,t)=>0!==t&&el(e,t)};const rl="undefined"!=typeof process&&process.env?process.env:self.env||{},al=/^(under|over|mis|re|un|dis|semi)-?/,ol=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&rl.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},il=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&rl.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r},sl={tagSwitch:fs,checkSuffix:Ds,checkRegex:Vs,checkCase:Ts,checkPrefix:zs,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(bs(o,"Verb","3-[prefix]"),bs(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(bs(o,"Adjective","3-[prefix]"),bs(o,"Prefix","3-[prefix]")))},checkYear:Hs},ll={checkAcronym:Us,neighbours:Qs,orgWords:Xs,nounFallback:Ys,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(al.test(l)&&!o[l]&&(l=l.replace(al,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ol(e[t+1],n.afterWords);return o=o||ol(e[t-1],n.beforeWords),o=o||il(e[t-1],n.beforeTags,a),o=o||il(e[t+1],n.afterTags,a),o}(e,t,i[o],r);nl[o]&&(u=nl[o](e,t)||u),u?(rl.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):rl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},ul=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},dl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var pl={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const jl=/'/;var El=function(e,t){let n=e[t].normal.split(jl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const xl=/'/;var Nl=function(e,t){let n=e[t].normal.split(xl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},Il=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Gl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Tl={in:!0,by:!0,for:!0};var Cl=(e,t)=>{let n=e[t];if(Gl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Tl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Dl=/'/,Ol=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger","index"])},Bl={d:(e,t)=>Nl(e,t),t:(e,t)=>Il(e,t),s:(e,t,n)=>Cl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):El(e,t)},Vl=function(e,t){return t.fromText(e.join(" ")).docs[0]};var zl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Dl.test(r[o].normal)&&([,i]=r[o].normal.split(Dl));let s=null;Bl.hasOwnProperty(i)&&(s=Bl[i](r,o,t)),s&&(s=Vl(s,e),Al(n,[a,o],s),Ol(n[a],e))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=Pl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=kl},hooks:["contractionTwo"]};const $l="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Fl=["i","we","they"];let Sl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",ifNo:["#ProperNoun"],reason:"a-complex-relationship"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"(this|that|the) [#Gerund]",group:0,tag:"Noun",reason:"this-gerund"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",tag:"Place",reason:"east-sydney"},{match:$l+" #Person",tag:"Person",reason:"randy-smith"},{match:$l+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${$l}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"do (simply|just|really|not)+ [(#Adjective|like)]",group:0,tag:"Verb",reason:"do-simply-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"#PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Fl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Fl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Fl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Hl=null;var Ml={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Hl=Hl||r.one.buildNet(n.two.matches,r);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Hl),e.uncache(),e}},model:{two:{matches:Sl}},hooks:["postTagger"]},Ll=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},Wl=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Ll(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},Jl={api:function(e){e.prototype.swap=Wl}};I.plugin(vl),I.plugin(zl),I.plugin(Ml),I.plugin(Jl);var ql=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Kl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ul={this:"Noun",then:"Pivot"};var Rl=function(e){for(let t=0;t of #Determiner? #Noun",chunk:"Noun"},{match:"#Noun in #Determiner? #Noun",chunk:"Noun"},{match:"#Singular and #Determiner? #Singular",chunk:"Noun"}];let Zl=null;var Xl=function(e,t,n){const{methods:r}=n;Zl=Zl||r.one.buildNet(Ql,r),e.sweep(Zl)};const Yl=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var eu=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},nu={compute:{chunks:function(e){const{document:t,world:n}=e;Rl(t),_l(t),Xl(e,t,n),eu(t),tu(t)}},api:function(e){e.prototype.chunks=Kl,e.prototype.clauses=ql},hooks:["chunks"]};const ru=/'s$/;var au=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(ru,""),e.normal=e.normal.replace(ru,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ou=/\(/,iu=/\)/,su=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ou,"");let t=e[e.length-1];t.post=t.post.replace(iu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const uu={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},cu=RegExp("("+Object.keys(uu).join("|")+")"),hu=RegExp("("+Object.values(uu).join("|")+")"),du=function(e,t){const n=e[t].pre.match(cu)[0]||"";if(!n||!uu[n])return null;const r=uu[n];for(;t{e[0].pre=e[0].pre.replace(cu,"");let t=e[e.length-1];t.post=t.post.replace(hu,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const mu=/\./g;var gu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(mu,""),e.normal=e.normal.replace(mu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(mu,""),e.normal=e.normal.replace(mu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},fu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const bu=(e,t)=>"number"==typeof t?e.eq(t):e,vu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var yu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=vu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return bu(this,e).map(e=>{let n=vu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return bu(this,e).map(e=>{let n=vu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return bu(this,e).map(e=>{let n=vu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return bu(this,e).map(e=>{let n=vu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=bu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=bu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=bu(t,e),new Adjectives(t.document,t.pointer)}};const wu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},ku=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Pu=[["emojis","emoji"],["atmentions","atMentions"]];var Au=function(e){ku.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=wu,Pu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},ju={api:function(e){Au(e),au(e),lu(e),pu(e),yu(e),fu(e),gu(e)}};const Eu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var xu={case:e=>{Eu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Eu(e,e=>e.text=n(e.text,t))},whitespace:e=>{Eu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{Eu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Nu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),Iu="unicode|punctuation|whitespace|acronyms",Gu="|case|contractions|parentheses|quotations|emoji|honorifics",Tu={light:Nu(Iu),medium:Nu(Iu+Gu),heavy:Nu(Iu+Gu+"|possessives|adverbs|nouns|verbs")};var Cu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Tu[e]),Object.keys(e).forEach(t=>{xu.hasOwnProperty(t)&&xu[t](this,e[t])}),this}}},Du=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Ou=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Bu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},zu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Vu(e,t),isSubordinate:Bu(e),root:t}};const $u=e=>e.text(),Fu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Su=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Hu=function(e){let t=zu(e);return{root:$u(t.root),number:Su(t.number),determiner:$u(t.determiner),adjectives:Fu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Mu={tags:!0};var Lu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Mu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Mu),e};const Wu={tags:!0};var Ju=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Wu).tag("Singular","toPlural"),e};const qu=(e,t)=>"number"==typeof t?e.eq(t):e;var Ku={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return qu(this,e).map(zu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Hu(t)),n},[])}isPlural(e){let t=this.filter(e=>zu(e).isPlural);return qu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=zu(e).adjectives;n.found&&(t=t.concat(n))}),qu(t,e)}toPlural(e){return qu(this,e).map(e=>Lu(e,zu(e)))}toSingular(e){return qu(this,e).map(e=>{let t=zu(e);return Ju(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Du(this);return t=qu(t,e),new Nouns(this.document,t.pointer)}}},Uu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},Ru=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(_u.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(_u.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(_u.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},Zu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Yu=/^([0-9,. ]+)\/([0-9,. ]+)$/,ec={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},tc=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var nc=function(e){if(!0===ec.hasOwnProperty(e))return ec[e];if("a"===e||"an"===e)return 1;const t=Ru(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=ac(n),r=ac(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:ac(n);let a=r.text("reduced");return rc.test(a)&&(a=a.replace(rc,""),r=r.replaceWith(a)),r=oc.hasOwnProperty(a)?oc[a]:ac(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:ac(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},sc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const lc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],uc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],cc=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],hc=function(e){let t=[];if(e>100)return t;for(let n=0;n=lc[n][1]&&(e-=lc[n][1],t.push(lc[n][0]));return uc[e]&&t.push(uc[e]),t};var dc=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=sc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return cc.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(hc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=sc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},pc=function(e){return e.numerator&&e.denominator?`${dc({num:e.numerator})} out of ${dc({num:e.denominator})}`:""};const mc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var gc=e=>{let t=dc(e).split(" "),n=t[t.length-1];return mc.hasOwnProperty(n)?t[t.length-1]=mc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},fc=function(e){if(!e.numerator||!e.denominator)return"";let t=dc({num:e.numerator}),n=gc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const bc=(e,t)=>"number"==typeof t?e.eq(t):e;var vc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return bc(this,e).map(ic)}get(e){return bc(this,e).map(ic)}json(e){return bc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ic(t);return n.fraction=r,n},[])}toDecimal(e){return bc(this,e).forEach(e=>{let{decimal:t}=ic(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return bc(this,e).forEach(e=>{let t=ic(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return bc(this,e).forEach(e=>{let t=ic(e),n=fc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return bc(this,e).forEach(e=>{let t=ic(e),n=pc(t);e.replaceWith(n)}),this}toPercentage(e){return bc(this,e).forEach(e=>{let{decimal:t}=ic(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Uu(this);return t=bc(t,e),new Fractions(this.document,t.pointer)}};const yc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var wc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+yc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+yc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+yc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+yc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${yc})`),r=e.has("("+yc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+yc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+yc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},kc=function(e){if("string"==typeof e)return{num:nc(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=ic(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=nc(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}},Pc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=sc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Ac={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},jc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var Ec=function(e){let t={suffix:"",prefix:e.prefix};return Ac.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Ac[e.prefix],t.prefix=""),jc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+jc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},xc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Ec(e);return t+gc(e)+n}if("Ordinal"===t)return e.prefix+Pc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Ec(e);return t+dc(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Nc=(e,t)=>"number"==typeof t?e.eq(t):e;var Ic=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Nc(this,e).map(kc)}get(e){return Nc(this,e).map(kc).map(e=>e.num)}json(e){return Nc(this,e).map(t=>{let n=t.toView().json(e)[0],r=kc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=kc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=xc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=kc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=xc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=kc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=xc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=kc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=xc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=kc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=xc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>kc(t).num===e)}greaterThan(e){return this.filter(t=>kc(t).num>e)}lessThan(e){return this.filter(t=>kc(t).num{let r=kc(n).num;return r>e&&r{let n=kc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=xc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=kc(e).num);let t=this.map(t=>{let n=kc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=xc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=wc(this);return t=Nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=wc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=wc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Nc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Gc={api:function(e){vc(e),Ic(e)}};const Tc={people:!0,emails:!0,phoneNumbers:!0,places:!0},Cc=function(e={}){return!1!==(e=Object.assign({},Tc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Dc={api:function(e){e.prototype.redact=Cc}},Oc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},Bc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Vc=function(e){let t=e.clauses(),n=Bc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},zc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},$c=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Fc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},Sc=function(e){return e.verbs().toInfinitive(),e};const Hc=(e,t)=>"number"==typeof t?e.eq(t):e;var Mc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Vc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Hc(this,e).map(e=>(Vc(e),zc(e)))}toPresentTense(e){return Hc(this,e).map(e=>(Vc(e),$c(e)))}toFutureTense(e){return Hc(this,e).map(e=>(Vc(e),e=Fc(e)))}toInfinitive(e){return Hc(this,e).map(e=>(Vc(e),Sc(e)))}toNegative(e){return Hc(this,e).map(e=>(Vc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Hc(this,e).map(e=>(Vc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Hc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Hc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Hc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Oc(this);return Hc(t,e)}};Object.assign(e.prototype,t)}},Lc=function(e){return e.match("#Honorific+? #Person+")},Wc=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Jc="male",qc="female",Kc={mr:Jc,mrs:qc,miss:qc,madam:qc,king:Jc,queen:qc,duke:Jc,duchess:qc,baron:Jc,baroness:qc,count:Jc,countess:qc,prince:Jc,princess:qc,sire:Jc,dame:qc,lady:qc,ayatullah:Jc,congressman:Jc,congresswoman:qc,"first lady":qc,mx:null};var Uc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return qc;if(n.has("#MaleName"))return Jc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Kc.hasOwnProperty(e))return Kc[e];if(/^her /.test(e))return qc;if(/^his /.test(e))return Jc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Jc;if(n&&!t)return qc}return null};const Rc=(e,t)=>"number"==typeof t?e.eq(t):e;var _c=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Rc(this,e).map(Wc)}json(e){return Rc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wc(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Uc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Lc(this);return t=Rc(t,e),new People(this.document,t.pointer)}},Qc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},Zc=function(e){e.prototype.places=function(t){let n=Qc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},Xc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Yc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var eh=function(e){e.prototype.topics=Yc},th={api:function(e){_c(e),Zc(e),Xc(e),eh(e)}},nh=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},rh=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},ah=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const oh=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},ih=function(e){return e.match("#Negative")},sh=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var lh=function(e){let t=e.clone();t.contractions().expand();const n=rh(t);return{root:n,prefix:t.match("#Prefix"),adverbs:ah(t,n),auxiliary:oh(t,n),negative:ih(t),phrasal:sh(n)}};const uh={tense:"PresentTense"},ch={conditional:!0},hh={tense:"FutureTense"},dh={progressive:!0},ph={tense:"PastTense"},mh={complete:!0,progressive:!1},gh={passive:!0},fh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},bh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[uh]],["^wanted to #Infinitive$",[ph]],["^will want to #Infinitive$",[hh]]],"gerund-phrase":[["^#PastTense #Gerund$",[ph]],["^#PresentTense #Gerund$",[uh]],["^#Infinitive #Gerund$",[uh]],["^will #Infinitive #Gerund$",[hh]],["^have #PastTense #Gerund$",[ph]],["^will have #PastTense #Gerund$",[ph]]],"simple-present":[["^#PresentTense$",[uh]],["^#Infinitive$",[uh]]],"simple-past":[["^#PastTense$",[ph]]],"simple-future":[["^will #Adverb? #Infinitive",[hh]]],"present-progressive":[["^(is|are|am) #Gerund$",[uh,dh]]],"past-progressive":[["^(was|were) #Gerund$",[ph,dh]]],"future-progressive":[["^will be #Gerund$",[hh,dh]]],"present-perfect":[["^(has|have) #PastTense$",[ph,mh]]],"past-perfect":[["^had #PastTense$",[ph,mh]],["^had #PastTense to #Infinitive",[ph,mh]]],"future-perfect":[["^will have #PastTense$",[hh,mh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[ph,dh]]],"past-perfect-progressive":[["^had been #Gerund$",[ph,dh]]],"future-perfect-progressive":[["^will have been #Gerund$",[hh,dh]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[ph,gh]],["^(was|were) being (#PastTense|#Participle)",[ph,gh]],["^(had|have) been (#PastTense|#Participle)",[ph,gh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[uh,gh]],["^(is|are|am) being (#PastTense|#Participle)",[uh,gh]],["^has been (#PastTense|#Participle)",[uh,gh]]],"passive-future":[["will have been (#PastTense|#Participle)",[hh,gh,ch]],["will be being? (#PastTense|#Participle)",[hh,gh,ch]]],"present-conditional":[["would be #PastTense",[uh,ch]]],"past-conditional":[["would have been #PastTense",[ph,ch]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[hh]]],"auxiliary-past":[["^did #Infinitive$",[ph,{plural:!1}]],["^used to #Infinitive$",[ph,mh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[uh,mh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[ph]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let vh=[];Object.keys(bh).map(e=>{bh[e].forEach(t=>{vh.push({name:e,match:t[0],data:fh(t[1])})})});var yh=vh,wh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),kh(r)&&(n.remove(r),r=n.last()),kh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Ph(t,e)}};const jh=e=>e,Eh=(e,t)=>{let n=Ah(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},xh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Ah(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Nh=function(e,t){let n=Ah(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Ih=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Gh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Ih(e)),r&&e.replace(t.root,r),e},Th=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ch=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Dh=function(e){return e&&e.isView?e.text("normal"):""},Oh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Ih(e))};var Bh=function(e){let t=lh(e);e=e.clone().toView();const n=wh(e,t);return{root:t.root.text(),preAdverbs:Ch(t.adverbs.pre),postAdverbs:Ch(t.adverbs.post),auxiliary:Dh(t.auxiliary),negative:t.negative.found,prefix:Dh(t.prefix),infinitive:Oh(t.root),grammar:n}};const Vh={tags:!0};var zh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Ih(r)),i&&e.replace(r,i,Vh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Nh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const $h={tags:!0},Fh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Ih(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Ah(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,$h),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Fh.simple(e,t),e=Fh.noAux(e,t))},hasHad:e=>(e.replace("has","had",$h),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ih(a)),n(o,e.model).Participle}},Sh={infinitive:Fh.simple,"simple-present":Fh.simple,"simple-past":jh,"simple-future":Fh.both,"present-progressive":e=>(e.replace("are","were",$h),e.replace("(is|are|am)","was",$h),e),"past-progressive":jh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Fh.hasHad,"past-perfect":jh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Th(e)),e.remove("have"),e),"present-perfect-progressive":Fh.hasHad,"past-perfect-progressive":jh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",$h),e),"passive-past":e=>(e.replace("have","had",$h),e),"passive-present":e=>(e.replace("(is|are)","was",$h),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",$h),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":jh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",$h),e),"auxiliary-past":jh,"auxiliary-present":e=>(e.replace("(do|does)","did",$h),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",$h):(Fh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":jh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",$h),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Fh.simple(e,t),Th(e),e)};var Hh=function(e,t,n){return Sh.hasOwnProperty(n)?((e=Sh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Mh={tags:!0},Lh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ih(a)),!1===Eh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=xh(e)),o&&(e=e.replace(a,o,Mh)).not("#Particle").tag("PresentTense"),e},Wh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ih(a)),!1===Eh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Mh)).not("#Particle").tag("Gerund"),e},Jh={infinitive:Lh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Lh(e,t);{let t=Ah(e).subject;if(Eh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Mh)}return e},"simple-past":Lh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=xh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Lh(e,t),e=e.remove("will");return e},"present-progressive":jh,"past-progressive":(e,t)=>{let n=xh(e);return e.replace("(were|was)",n,Mh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Lh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Ah(e).subject;return Eh(e)||n.has("i")?((e=Gh(e,t)).remove("had"),e):(e.replace("had","has",Mh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":jh,"past-perfect-progressive":e=>e.replace("had","has",Mh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=xh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Mh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":jh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":jh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Wh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Nh(e);return e.replace(t.auxiliary,n),e}return Wh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":jh,"modal-infinitive":jh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Ih(r)),a&&(e=e.replace(t.root,a,Mh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Lh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Eh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Mh),e.remove("will"),e}};var qh=function(e,t,n){return Jh.hasOwnProperty(n)?((e=Jh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Kh={tags:!0},Uh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Ih(r)),o&&(e=e.replace(r,o,Kh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Rh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Ih(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Kh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},_h={infinitive:Uh,"simple-present":Uh,"simple-past":Uh,"simple-future":jh,"present-progressive":Rh,"past-progressive":Rh,"future-progressive":jh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":jh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":jh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":jh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":jh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":jh,"modal-past":jh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Uh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Qh=function(e,t,n){return e.has("will")||e.has("going to")?e:_h.hasOwnProperty(n)?((e=_h[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Zh={tags:!0};var Xh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Ih(a));let s=r(i,e.model).Gerund;return s&&(s=`${xh(e)} ${s}`,e.replace(a,s,Zh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const Yh={tags:!0},ed=function(e,t){let n=Nh(e);return e.prepend(n+" not"),e},td=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},nd=e=>e.has("(is|was|am|are|will|were|be)"),rd={"simple-present":(e,t)=>!0===nd(e)?td(e):(e=Gh(e,t),e=ed(e)),"simple-past":(e,t)=>!0===nd(e)?td(e):((e=Gh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===nd(e)?td(e):ed(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Yh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=ed(e)).replace("wants","want",Yh)};var ad=function(e,t,n){if(e.has("#Negative"))return e;if(rd.hasOwnProperty(n))return e=rd[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===nd(e)?td(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const od=(e,t)=>"number"==typeof t?e.eq(t):e;var id={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return od(this,e).map(lh)}json(e,t){return od(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Bh(t),n},[])}subjects(e){return od(this,e).map(e=>(lh(e),Ah(e).subject))}adverbs(e){return od(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return od(this,e).filter(e=>!0!==Ah(e).plural)}isPlural(e){return od(this,e).filter(e=>!0===Ah(e).plural)}isImperative(e){return od(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return zh(e,t,n.form)})}toPresentTense(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return qh(e,t,n.form)})}toPastTense(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return Hh(e,t,n.form)})}toFutureTense(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return Qh(e,t,n.form)})}toGerund(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return Xh(e,t,n.form)})}conjugate(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:zh(e.clone(),t,n.form).text("normal"),PastTense:Hh(e.clone(),t,n.form).text("normal"),PresentTense:qh(e.clone(),t,n.form).text("normal"),FutureTense:Qh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return od(this,e).map(e=>{let t=lh(e),n=wh(e,t);return ad(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=nh(this);return t=od(t,e),new Verbs(this.document,t.pointer)}}};I.plugin(nu),I.plugin(ju),I.plugin(Cu),I.plugin(Ku),I.plugin(Gc),I.plugin(Dc),I.plugin(Mc),I.plugin(th),I.plugin(id);let sd=I.model();const ld=I.methods().one.tokenize.splitSentences;var ud=function(e,t=1){let n=function(e,t=1){const n=Math.ceil(e.length/t),r=new Array(t);for(let a=0,o=0;aconsole.error(e)),n.push(s)}return n};let dd=c.default.cpus().length;var pd={lib:{workerPool:function(e,t){let n=this;"string"==typeof t&&(t=n.parseMatch(t));let r=hd(dd,t),a=ud(e,dd),o=[],i=r.map(e=>!0);return r.forEach((e,t)=>{e.postMessage({type:"work",work:a[t]||[]})}),new Promise(e=>{r.forEach(t=>{t.on("message",t=>{if("match"===t.type&&t.match.forEach(e=>{o.push(e)}),"drained"===t.type){let a=t.status.workerIndex;if(i[a]=!1,i.every(e=>!1===e)){let t=n("");t.document=o,r.forEach(e=>e.terminate()),e(t)}}})})})}}},md=function(e){let t=function(e){return Object.keys(e.index).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(e);return 0===t.length?this:(this._cache||this.cache(),this.filter(e=>t.some(t=>e._cache.has(t))))},gd={api:function(e){e.prototype.maybeMatch=md},lib:{lazyParse:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=r.maybeMatch(n);return a.found?(a.compute(["lexicon"]),a.match(t)):r.none()}}};e.keyPress=p,e.lazyParse=gd,e.streamFile=h,e.workerPool=pd,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs"),require("path"),require("url"),require("worker_threads"),require("os")):"function"==typeof define&&define.amd?define(["exports","fs","path","url","worker_threads","os"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).compromiseSpeed={},e.fs,e.path,e.url,e.worker_threads,e.os); +var e,t;e=this,t=function(e,t,n,r,a,o){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var l=s(t),u=i(n),c=i(o),h={lib:{streamFile:function(e,t,n={}){const r=this;let a=r.world();const o=r.methods().one.tokenize.splitSentences,i=l.createReadStream(e,n);let s="",u=[];const c=e=>{let n=r(e),a=t(n);a&&a.found&&a.docs.forEach(e=>u.push(e))};return new Promise((e,t)=>{i.on("data",(function(e){s+=e;let[t,n]=function(e){let t=s.substring(e.length-300),n=o(t,a),r=n[n.length-1];return[e.substr(0,e.length-r.length),r]}(s);c(t),s=n})),i.on("end",(function(){c(s);let t=r("");t.document=u,e(t)})),i.on("error",(function(e){console.error(e.stack),t(e)}))})}}};let d={};var m={lib:{keyPress:function(e,t,n={}){const r=this;let a=(0,this.methods().one.tokenize.splitSentences)(e,this.world()),o=[];return a.forEach(e=>{if(!0===d.hasOwnProperty(e))o.push(d[e].data),d[e].used=!0;else{n.verbose&&console.log(`parsing: '${e}'\n`);let a=r(e,t).json(0);d[e]={data:a,used:!0},o.push(a)}}),Object.keys(d).forEach(e=>{!0!==d[e].used?delete d[e]:d[e].used=null}),n.verbose&&console.log(Object.keys(d).length+"' sentences in cache\n"),r(o)}}},p={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]},g={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}},f={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const b={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};b.group=b.groups,b.fullSentence=b.fullSentences,b.sentence=b.fullSentences,b.lastTerm=b.lastTerms,b.firstTerm=b.firstTerms;var v=b;const y=Object.assign({},v,g,f);y.get=y.eq;var w=y;class View{constructor(e,t,n={}){[["document",e],["world",p],["_groups",n],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=t}get docs(){let e=this.document;return this.ptrs&&(e=p.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,w);var k=View;const P=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var A=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(P(n))for(const r in n)P(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const j=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var E=function(e,t,n){const{methods:r}=n;let a=new t([]);return a.world=n,"number"==typeof e&&(e=String(e)),e?"string"==typeof e?new t(r.one.tokenize.fromString(e,n)):(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView?new t(e.document,e.ptrs):j(e)?j(e[0])?new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))):new t(function(e){return e.map(e=>e.terms.map(e=>(j(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e)):a):a;var o};let x=Object.assign({},p);const N=function(e,t){t&&N.addWords(t);let n=E(e,k,x);return e&&n.compute(x.hooks),n};Object.defineProperty(N,"_world",{value:x,writable:!0}),N.tokenize=function(e,t){const{compute:n}=this._world;t&&N.addWords(t);let r=E(e,k,x);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},N.plugin=function(e){return A(e,this._world,k,this),this},N.extend=N.plugin,N.world=function(){return this._world},N.model=function(){return this._world.model},N.methods=function(){return this._world.methods},N.hooks=function(){return this._world.hooks},N.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},N.version="14.4.0";var I=N;const G={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var T={api:function(e){Object.assign(e.prototype,G)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),C=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},O=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},B=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},V=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?O(n):(O(n),O([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!D(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||D(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,e=>e.toLowerCase()))}(e,o,n),C(e,o,n)};let z=0;const $=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var F=function(e){let[t,n]=e.index||[0,0];z+=1,z=z>46655?0:z,t=t>46655?0:t,n=n>1294?0:n;let r=$(z.toString(36));r+=$(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const S=function(e){e.has("@hasContraction")&&e.grow("@hasContraction").contractions().expand()},H=e=>"[object Array]"===Object.prototype.toString.call(e),M=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:H(e)?H(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=F(e),e))}(d),n?(S(t.update([u]).firstTerm()),V(h,u,d,r)):(S(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(J,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var K=q,U=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const R={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=U(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};R.delete=R.remove;var _=R;const Q={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};Q.deHyphenate=Q.dehyphenate,Q.toQuotation=Q.toQuotations;var Z=Q,Y={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const X=new Set(["index","sequence","seq","sequential","chron","chronological"]),ee=new Set(["freq","frequency","topk","repeats"]),te=new Set(["alpha","alphabetical"]);var ne={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return X.has(e)&&(e="sequential"),te.has(e)&&(e="alpha"),ee.has(e)?(a=Y.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof Y[e]?(a=a.sort(Y[e]),this.update(a.map(e=>e.pointer))):this}};const re=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var ae={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return C(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=re(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=re(this.document,e);return this.document=t,this.all()}var a;return this}},oe={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const ie=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},W,K,_,Z,ne,ae,oe);var se={api:function(e){Object.assign(e.prototype,ie)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ce=/'/,he=new Set(["what","how","when","where","why"]),de=new Set(["be","go","start","think","need"]),me=new Set(["been","gone"]);var pe=function(e,t){let n=e[t].normal.split(ce)[0];if(he.has(n))return[n,"did"];if(e[t+1]){if(me.has(e[t+1].normal))return[n,"had"];if(de.has(e[t+1].normal))return[n,"would"]}return null},ge=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const fe=/'/;var be=(e,t)=>["je",e[t].normal.split(fe)[1]],ve=(e,t)=>{let n=e[t].normal.split(fe)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ye=(e,t)=>{let n=e[t].normal.split(fe)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const we=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,ke=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,Pe=/^[0-9]{3}-[0-9]{4}$/;var Ae=function(e,t){let n=e[t],r=n.text.match(we);return null!==r?!0===n.tags.has("PhoneNumber")||Pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ke),null!==r?[r[1],"to",r[4]]:null)};const je=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,Ee=new Set(["st","nd","rd","th","am","pm","max"]);var xe=function(e,t){let n=e[t].text.match(je);if(null!==n){let e=n[2].toLowerCase().trim();return Ee.has(e)?null:[n[1],e]}return null};const Ne=/'/,Ie=/^[0-9][^-–—]*[-–—].*?[0-9]/,Ge=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Te={t:(e,t)=>ge(e,t),d:(e,t)=>pe(e,t)},De={j:(e,t)=>be(e,t),l:(e,t)=>ve(e,t),d:(e,t)=>ye(e,t)},Ce=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===Ne.test(r[s].normal)&&([l,u]=r[s].normal.split(Ne));let c=Ce(o,r[s],l,u);!c&&Te.hasOwnProperty(u)&&(c=Te[u](r,s,t)),!c&&De.hasOwnProperty(l)&&(c=De[l](r,s)),c?(c=Oe(c,e),ue(n,[i,s],c),Ge(n[i],e,s,c.length)):Ie.test(r[s].normal)?(c=Ae(r,s),c&&(c=Oe(c,e),ue(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Ge(n[i],e,s,c.length))):(c=xe(r,s),c&&(c=Oe(c,e),ue(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]},Ve=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===ze.test(l)){let e=l.replace(ze,"");if(i.hasOwnProperty(e)&&e.length>3&&$e.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Se={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]},He=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Me=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var qe=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Ke={buildTrie:function(e){const t=He(e,this.world());return qe(t)}};Ke.compile=Ke.buildTrie;var Ue={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:He(e,this.world));var r;let a=We(this,n,t);return a=a.settle(),a}},lib:Ke};const Re=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},_e=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Re(n,t),Object.keys(r).forEach(e=>{r[e]=Re(r[e],t)}),{ptrs:n,byGroup:r}},Qe=e=>"[object Object]"===Object.prototype.toString.call(e),Ze=e=>e&&Qe(e)&&!0===e.isView,Ye=e=>e&&Qe(e)&&!0===e.isNet,Xe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var et={matchOne:function(e,t,n){const r=this.methods.one;if(Ze(e))return this.intersection(e).eq(0);if(Ye(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Xe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=_e(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Ze(e))return this.intersection(e);if(Ye(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Xe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=_e(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Ze(e))return e.fullPointer.length>0;if(Ye(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Xe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Ze(e))return this.filter(t=>t.intersection(e).found);if(Ye(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Xe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Ze(e))return this.filter(t=>!t.intersection(e).found);if(Ye(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Xe(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}},tt={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const nt=function(e,t){return[e[0],e[1],t[2]]},rt=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},at=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},ot={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=rt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>at(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=rt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(nt(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>at(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=rt(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(nt(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>at(e,this)),this.update(o)}};ot.split=ot.splitAfter;var it=ot;const st=Object.assign({},et,tt,it);st.lookBehind=st.before,st.lookBefore=st.before,st.lookAhead=st.after,st.lookAfter=st.after,st.notIf=st.ifNo;var lt=function(e){Object.assign(e.prototype,st)};const ut=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,ct=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ht=/ /g,dt=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),mt=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var pt=function(e){let t=e.split(ut),n=[];t.forEach(e=>{dt(e)?n.push(e):n=n.concat(e.split(ct))}),n=mt(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||dt(e)?r.push(e):r=r.concat(e.split(ht))}),r=mt(r),r};const gt=/\{([0-9]+)?(, *[0-9]*)?\}/,ft=/&&/,bt=new RegExp(/^<\s*(\S+)\s*>/),vt=e=>e.charAt(0).toUpperCase()+e.substring(1),yt=e=>e.charAt(e.length-1),wt=e=>e.charAt(0),kt=e=>e.substring(1),Pt=e=>e.substring(0,e.length-1),At=function(e){return e=kt(e),e=Pt(e)},jt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===yt(e)&&(n.end=!0,e=Pt(e)),"^"===wt(e)&&(n.start=!0,e=kt(e)),("["===wt(e)||"]"===yt(e))&&(n.group=null,"["===wt(e)&&(n.groupStart=!0),"]"===yt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===wt(e))){const t=bt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===yt(e)&&(n.greedy=!0,e=Pt(e)),"*"!==e&&"*"===yt(e)&&"\\*"!==e&&(n.greedy=!0,e=Pt(e)),"?"===yt(e)&&(n.optional=!0,e=Pt(e)),"!"===wt(e)&&(n.negative=!0,e=kt(e)),"~"===wt(e)&&"~"===yt(e)&&e.length>2&&(e=At(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===wt(e)&&")"===yt(e)){ft.test(e)?(n.choices=e.split(ft),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=kt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=Pt(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>jt(e,t))),e=""}if("/"===wt(e)&&"/"===yt(e))return e=At(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===wt(e)&&"}"===yt(e)){if(e=At(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===wt(e)&&">"===yt(e))return e=At(e),n.chunk=vt(e),n.greedy=!0,n;if("%"===wt(e)&&"%"===yt(e))return e=At(e),n.switch=e,n}return!0===gt.test(e)&&(e=e.replace(gt,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===wt(e)?(n.tag=kt(e),n.tag=vt(n.tag),n):"@"===wt(e)?(n.method=kt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Et=jt;const xt=/[a-z0-9][-–—][a-z]/i;var Nt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&xt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e},It=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e},Gt=function(e){return e=function(e){return e.map(e=>(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=(e=function(e){let t=0,n=null;for(let r=0;r{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=pt(e);return r=r.map(e=>Et(e,t)),r=Nt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||Vt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Mt=Ht;let Lt=function(){};Lt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Mt[t.method]&&!0===Mt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>Lt(e,t,n,r)):t.choices.some(t=>Lt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Lt;const Jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Xt=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},en=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Zt(e),r.implicit&&e.terms[e.t+1]&&Xt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},tn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator){if(!0!==e.anything){if(!0!==Jt(e,a)){if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative&&!Qt(a))return null;if(!0!==e.optional)return null}else if(!en(a))return null}else if(!en(a))return null}else if(!en(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}},nn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const rn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},an=function(e,t,n){let r=tn(e,t,0,e.length);return r?(r=rn(r,n),r):null};var on={api:lt,methods:{one:{termMethods:Mt,parseMatch:Tt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=an(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=nn(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const sn=/^\../,ln=/^#./,un=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),sn.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var cn={html:function(e){let{starts:t,ends:n}=un(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(dn,""),pn.test(a)&&(a=" "),a=a.replace(mn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(dn,""),a="-"===a?" ":a.replace(hn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&gn.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},bn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};bn.clean=bn.normal,bn.reduced=bn.root;var vn=bn;let yn=[],wn=0;for(;wn<64;)yn[wn]=0|4294967296*Math.sin(++wn%Math.PI);function kn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(wn=i=0;wn>4]+yn[i]+~~o[wn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Pn={text:!0,terms:!0};let An={case:"none",unicode:"some",form:"machine",punctuation:"some"};const jn=function(e,t){return Object.assign({},e,t)},En={text:e=>fn(e,{keepPunct:!0},!1),normal:e=>fn(e,jn(vn.normal,{keepPunct:!0}),!1),implicit:e=>fn(e,jn(vn.implicit,{keepPunct:!0}),!1),machine:e=>fn(e,An,!1),root:e=>fn(e,jn(An,{form:"root"}),!1),hash:e=>kn(fn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const xn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Pn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Nn=xn,In=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};const Gn="";var Tn={green:e=>""+e+Gn,red:e=>""+e+Gn,blue:e=>""+e+Gn,magenta:e=>""+e+Gn,cyan:e=>""+e+Gn,yellow:e=>""+e+Gn,black:e=>""+e+Gn,dim:e=>""+e+Gn,i:e=>""+e+Gn},Dn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach(e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)})),e.join(", ")}(t,n);console.log(o)})})},Cn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})},On=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const Bn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Vn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e);if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}},$n={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&vn.hasOwnProperty(e)?t=Object.assign({},vn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Mn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Ln=function(e,t){let n=Mn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r},Wn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Mn,splitAll:Ln}}},Jn=function(e,t){let n=e.concat(t),r=Mn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>Hn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n},Kn=function(e,t){let n=Mn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>Hn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Rn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},_n={union:function(e){e=Un(e,this);let t=Jn(this.fullPointer,e.fullPointer);return t=Rn(t,this.document),this.toView(t)}};_n.and=_n.union,_n.intersection=function(e){e=Un(e,this);let t=Kn(this.fullPointer,e.fullPointer);return t=Rn(t,this.document),this.toView(t)},_n.not=function(e){e=Un(e,this);let t=qn(this.fullPointer,e.fullPointer);return t=Rn(t,this.document),this.toView(t)},_n.difference=_n.not,_n.complement=function(){let e=this.all(),t=qn(e.fullPointer,this.fullPointer);return t=Rn(t,this.document),this.toView(t)},_n.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Jn(e,[t])}),e=Rn(e,this.document),this.update(e)};var Qn={methods:Wn,api:function(e){Object.assign(e.prototype,_n)}};const Zn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Yn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Zn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Zn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Zn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e},Xn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})},er=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>0===e.wants.length||e.wants.filter(e=>r.has(e)).length>=e.minWant)})},tr=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a},nr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Yn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Xn(a,t.hooks);return o=er(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),tr(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;return 0===e.length?e:(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===nr(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)}))}}}};const ar=/ /,or=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ir=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),ar.test(t))!function(e,t,n,r){let a=t.split(ar);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),ir(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nsr(e,t,n,r))};var lr=sr,ur=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>cr({id:e})),t}return[cr({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},pr=e=>"[object Array]"===Object.prototype.toString.call(e),gr=e=>(e=e||"").trim(),fr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||hr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:dr(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=cr({});return e.forEach(e=>{if((e=cr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(mr(t=e).forEach(cr),t);var t},br=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return mr(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},vr=function(e){let t=mr(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},yr={text:br,txt:br,array:vr,flat:vr},wr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(br(e,!0)),null):yr.hasOwnProperty(t)?yr[t](e):e},kr=e=>{mr(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},Pr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=gr(e),!Pr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||cr({});return new g$1(t)}add(e,t={}){if(pr(e))return e.forEach(e=>this.add(gr(e),t)),this;e=gr(e);let n=cr({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=gr(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return mr(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=mr(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return mr(this.json)}fillDown(){var e;return e=this.json,mr(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else pr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){kr(this.json);let e=mr(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return kr(this.json),wr(this.json,e)}debug(){return kr(this.json),wr(this.json,"debug"),this}}const Ar=function(e){let t=fr(e);return new g$1(t)};Ar.prototype.plugin=function(e){e(this)};var jr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Er=function(e){if(jr.hasOwnProperty(e.id))return jr[e.id];if(jr.hasOwnProperty(e.is))return jr[e.is];let t=e._cache.parents.find(e=>jr[e]);return jr[t]};var xr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Er(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const Nr=function(e){return e?"string"==typeof e?[e]:e:[]};var Ir=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=Nr(e[t].children),e[t].not=Nr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e},Gr={one:{setTag:lr,unTag:ur,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=Ir(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return Ar(t).cache().fillDown().out("array")}(Object.assign({},t,e));return xr(n)}}};const Tr=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var Dr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Tr(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Tr(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}},Cr=function(e){Object.assign(e.prototype,Dr)},Or={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Br=new Set(["Auxiliary","Possessive"]);var Vr={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(Br.has(e)||!t.hasOwnProperty(n))return 1;if(Br.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:Gr,api:Cr,lib:Or};const zr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,$r=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Fr=function(e){let t=[],n=e.split($r);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const Wr=/\S/,Jr=/^\s+/;var qr=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===Wr.test(e))return[];e=e.replace(" "," ");let n=Fr(e),r=Mr(n),a=Lr(r,t);if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const ta=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,na=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,ra=/['’]/,aa=/^[a-z]\.([a-z]\.)+/i,oa=/^[-+.][0-9]/,ia=/^'[0-9]{2}/;var sa=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(ta,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!oa.test(e)?"'"===n&&ia.test(e)?(n="",t):"":(n="",t)))).replace(na,a=>(r=a,ra.test(a)&&/[sn]['’]$/.test(t)&&!1===ra.test(n)?(r=r.replace(ra,""),"'"):!0===aa.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}},la=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const ua=/([A-Z]\.)+[A-Z]?,?$/,ca=/^[A-Z]\.,?$/,ha=/[A-Z]{2,}('s|,)?$/,da=/([a-z]\.)+[a-z]\.?$/;var ma=function(e){return function(e){return!0===ua.test(e)||!0===da.test(e)||!0===ca.test(e)||!0===ha.test(e)}(e)&&(e=e.replace(/\./g,"")),e},pa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=la(r),r=n(r,t),r=ma(r),e.normal=r};const ga=/[ .][A-Z]\.? *$/i,fa=/(?:\u2026|\.{2,}) *$/,ba=/\p{L}/u;var va={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:qr,isSentence:function(e,t){if(!1===ba.test(e))return!1;if(!0===ga.test(e))return!1;if(!0===fa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Xr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Qr(n),n=Rr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=sa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{pa(e,t)}),n})}}}},ya={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let wa={},ka={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{wa[t]=!0,ka[t]="Abbreviation",void 0!==e[1]&&(ka[t]=[ka[t],e[1]])})});var Pa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let Aa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ja={};Object.keys(Aa).forEach((function(e){Aa[e].split("").forEach((function(t){ja[t]=e}))}));const Ea=/\//,xa=/[a-z]\.[a-z]/i,Na=/[0-9]/;var Ia=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ea.test(n)&&!xa.test(n)&&!Na.test(n)){let t=n.split(Ea);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const Ga=/^\p{Letter}+-\p{Letter}+$/u;var Ta=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),Ga.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},Da=function(e){let t=0,n=0,r=e.document;for(let e=0;eCa(e,Ia),machine:e=>Ca(e,Ta),normal:e=>Ca(e,pa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const za={safe:!0,min:3};var $a={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=Ba},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},za,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Va(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};I.extend(se),I.extend(Sn),I.extend(on),I.extend(Qn),I.extend(Vr),I.plugin(Be),I.extend(Oa),I.plugin(T),I.extend(Ue),I.extend($a),I.extend(Se),I.extend(rr);var Fa={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Sa={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ha=36,Ma="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",La=Ma.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Wa=function(e){if(void 0!==La[e])return La[e];let t=0,n=1,r=Ha,a=1;for(;n=0;n--,a*=Ha){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Ja=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ka(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Ua(Sa[e]);Za.test(e)?Object.keys(t).forEach(t=>{if(Xa[t]=e,"Noun|Verb"===e){let e=Qa(t,eo);Xa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ya[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ya[e]="Emoticon"),delete Ya[""],delete Ya.null,delete Ya[" "];const to="Adjective";var no={beforeTags:{Determiner:to,Possessive:to},afterTags:{Adjective:to},beforeWords:{seem:to,seemed:to,seems:to,feel:to,feels:to,felt:to,appear:to,appears:to,appeared:to,also:to,over:to,under:to,too:to,it:to,but:to,still:to,really:to,quite:to,well:to,very:to,deeply:to,profoundly:to,extremely:to,so:to,badly:to,mostly:to,totally:to,awfully:to,rather:to,nothing:to,something:to,anything:to,not:to,me:to},afterWords:{too:to,also:to,or:to}};const ro="Gerund";var ao={beforeTags:{Adverb:ro,Preposition:ro,Conjunction:ro},afterTags:{Adverb:ro,Possessive:ro,Person:ro,Pronoun:ro,Determiner:ro,Copula:ro,Preposition:ro,Conjunction:ro,Comparative:ro},beforeWords:{been:ro,keep:ro,continue:ro,stop:ro,am:ro,be:ro,me:ro,began:ro,start:ro,starts:ro,started:ro,stops:ro,stopped:ro,help:ro,helps:ro,avoid:ro,avoids:ro,love:ro,loves:ro,loved:ro,hate:ro,hates:ro,hated:ro},afterWords:{you:ro,me:ro,her:ro,him:ro,them:ro,their:ro,it:ro,this:ro,there:ro,on:ro,about:ro,for:ro}},oo={beforeTags:Object.assign({},no.beforeTags,ao.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},no.afterTags,ao.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},no.beforeWords,ao.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},no.afterWords,ao.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const io="Singular";var so={beforeTags:{Determiner:io,Possessive:io,Acronym:io,Noun:io,Adjective:io,PresentTense:io,Gerund:io,PastTense:io,Infinitive:io,Date:io},afterTags:{Value:io,Modal:io,Copula:io,PresentTense:io,PastTense:io,Demonym:io},beforeWords:{the:io,with:io,without:io,of:io,for:io,any:io,all:io,on:io,cut:io,cuts:io,save:io,saved:io,saves:io,make:io,makes:io,made:io,minus:io,plus:io,than:io,another:io,versus:io,neither:io,favorite:io,best:io,daily:io,weekly:io,linear:io,binary:io,mobile:io,lexical:io,technical:io,computer:io,scientific:io,formal:io},afterWords:{of:io,system:io,aid:io,method:io,utility:io,tool:io,reform:io,therapy:io,philosophy:io,room:io,authority:io,says:io,said:io,wants:io,wanted:io}};const lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var uo={beforeTags:Object.assign({},no.beforeTags,so.beforeTags,lo.beforeTags),afterTags:Object.assign({},no.afterTags,so.afterTags),beforeWords:Object.assign({},no.beforeWords,so.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},no.afterWords,so.afterWords)};const co={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},ho={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},mo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},po={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var go={beforeTags:Object.assign({},no.beforeTags,co),afterTags:Object.assign({},no.afterTags,ho),beforeWords:Object.assign({},no.beforeWords,mo),afterWords:Object.assign({},no.afterWords,po)};const fo="Infinitive";var bo={beforeTags:{Modal:fo,Adverb:fo,Negative:fo,Plural:fo},afterTags:{Determiner:fo,Adverb:fo,Possessive:fo,Preposition:fo},beforeWords:{i:fo,we:fo,you:fo,they:fo,to:fo,please:fo,will:fo,have:fo,had:fo,would:fo,could:fo,should:fo,do:fo,did:fo,does:fo,can:fo,must:fo,us:fo,me:fo,he:fo,she:fo,it:fo,being:fo},afterWords:{the:fo,me:fo,you:fo,him:fo,her:fo,them:fo,it:fo,a:fo,an:fo,up:fo,down:fo,by:fo,out:fo,off:fo,under:fo,when:fo,all:fo,to:fo,because:fo,although:fo,before:fo,how:fo,otherwise:fo,together:fo,though:fo,yet:fo}};const vo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var yo={beforeTags:Object.assign({},no.beforeTags,bo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},no.afterTags,bo.afterTags,vo.afterTags),beforeWords:Object.assign({},no.beforeWords,bo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},no.afterWords,bo.afterWords,{to:void 0})};const wo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ko={},Po={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Ao={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var jo={beforeTags:Object.assign({},ao.beforeTags,so.beforeTags,wo),afterTags:Object.assign({},ao.afterTags,so.afterTags,ko),beforeWords:Object.assign({},ao.beforeWords,so.beforeWords,Po),afterWords:Object.assign({},ao.afterWords,so.afterWords,Ao)},Eo={beforeTags:Object.assign({},bo.beforeTags,so.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},bo.afterTags,so.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},bo.beforeWords,so.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},bo.afterWords,so.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const xo="Person";var No={beforeTags:{Honorific:xo,Person:xo,Preposition:xo},afterTags:{Person:xo,ProperNoun:xo,Verb:xo},ownTags:{ProperNoun:xo},beforeWords:{hi:xo,hey:xo,yo:xo,dear:xo,hello:xo},afterWords:{said:xo,says:xo,told:xo,tells:xo,feels:xo,felt:xo,seems:xo,thinks:xo,thought:xo,spends:xo,spendt:xo,plays:xo,played:xo,sing:xo,sang:xo,learn:xo,learned:xo,wants:xo,wanted:xo}};const Io="Month",Go={beforeTags:{Date:Io,Value:Io},afterTags:{Date:Io,Value:Io},beforeWords:{by:Io,in:Io,on:Io,during:Io,after:Io,before:Io,between:Io,until:Io,til:Io,sometime:Io,of:Io,this:Io,next:Io,last:Io,previous:Io,following:Io},afterWords:{sometime:Io,in:Io,of:Io,until:Io,the:Io}};var To={beforeTags:Object.assign({},No.beforeTags,Go.beforeTags),afterTags:Object.assign({},No.afterTags,Go.afterTags),beforeWords:Object.assign({},No.beforeWords,Go.beforeWords),afterWords:Object.assign({},No.afterWords,Go.afterWords)};const Do={Place:"Place"},Co={Place:"Place",Abbreviation:"Place"},Oo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},Bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let Vo="Unit";const zo={"Adj|Gerund":oo,"Adj|Noun":uo,"Adj|Past":go,"Adj|Present":yo,"Noun|Verb":Eo,"Noun|Gerund":jo,"Person|Noun":{beforeTags:Object.assign({},so.beforeTags,No.beforeTags),afterTags:Object.assign({},so.afterTags,No.afterTags),beforeWords:Object.assign({},so.beforeWords,No.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},so.afterWords,No.afterWords)},"Person|Date":To,"Person|Verb":{beforeTags:Object.assign({},No.beforeTags,bo.beforeTags),afterTags:Object.assign({},No.afterTags,bo.afterTags),beforeWords:Object.assign({},No.beforeWords,bo.beforeWords),afterWords:Object.assign({},No.afterWords,bo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Do,No.beforeTags),afterTags:Object.assign({},Co,No.afterTags),beforeWords:Object.assign({},Oo,No.beforeWords),afterWords:Object.assign({},Bo,No.afterWords)},"Unit|Noun":{beforeTags:{Value:Vo},afterTags:{},beforeWords:{per:Vo,every:Vo,each:Vo,square:Vo,cubic:Vo,sq:Vo,metric:Vo},afterWords:{per:Vo,squared:Vo,cubed:Vo,long:Vo}}},$o=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};zo["Plural|Verb"]={beforeWords:$o(zo["Noun|Verb"].beforeWords,{}),afterWords:$o(zo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:$o(zo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:$o(zo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Fo=zo;const So="Adjective",Ho="Infinitive",Mo="PresentTense",Lo="Singular",Wo="PastTense",Jo="Adverb",qo="Plural",Ko="Actor",Uo="Verb",Ro="Noun",_o="LastName",Qo="Modal",Zo="Participle";var Yo=[null,null,{ea:Lo,ia:Ro,ic:So,ly:Jo,"'n":Uo,"'t":Uo},{oed:Wo,ued:Wo,xed:Wo," so":Jo,"'ll":Qo,"'re":"Copula",azy:So,eer:Ro,end:Uo,ped:Wo,ffy:So,ify:Ho,ing:"Gerund",ize:Ho,ibe:Ho,lar:So,mum:So,nes:Mo,nny:So,ous:So,que:So,rol:Lo,sis:Lo,ogy:Lo,oid:Lo,ian:Lo,zes:Mo,eld:Wo,ken:Zo,ven:Zo,ten:Zo,ect:Ho,ict:Ho,ign:Ho,ful:So,bal:So},{amed:Wo,aped:Wo,ched:Wo,lked:Wo,rked:Wo,reed:Wo,nded:Wo,mned:So,cted:Wo,dged:Wo,ield:Lo,akis:_o,cede:Ho,chuk:_o,czyk:_o,ects:Mo,ends:Uo,enko:_o,ette:Lo,wner:Lo,fies:Mo,fore:Jo,gate:Ho,gone:So,ices:qo,ints:qo,ruct:Ho,ines:qo,ions:qo,less:So,llen:So,made:So,nsen:_o,oses:Mo,ould:Qo,some:So,sson:_o,tion:Lo,tage:Ro,ique:Lo,tive:So,tors:Ro,vice:Lo,lier:Lo,fier:Lo,wned:Wo,gent:Lo,tist:Lo,pist:Lo,rist:Lo,mist:Lo,yist:Lo,vist:Lo,lite:Lo,site:Lo,rite:Lo,mite:Lo,bite:Lo,mate:Lo,date:Lo,ndal:Lo,vent:Lo,uist:Lo,gist:Lo,note:Lo,cide:Lo,wide:So,vide:Ho,ract:Ho,duce:Ho,pose:Ho,eive:Ho,lyze:Ho,lyse:Ho,iant:So,nary:So},{elist:Lo,holic:Lo,phite:Lo,tized:Wo,urned:Wo,eased:Wo,ances:qo,bound:So,ettes:qo,fully:Jo,ishes:Mo,ities:qo,marek:_o,nssen:_o,ology:Ro,osome:Lo,tment:Lo,ports:qo,rough:So,tches:Mo,tieth:"Ordinal",tures:qo,wards:Jo,where:Jo,archy:Ro,pathy:Ro,opoly:Ro,embly:Ro,phate:Ro,ndent:Lo,scent:Lo,onist:Lo,anist:Lo,alist:Lo,olist:Lo,icist:Lo,ounce:Ho,iable:So,borne:So,gnant:So,inant:So,igent:So,atory:So,rient:Lo,dient:Lo},{auskas:_o,parent:Lo,cedent:Lo,ionary:Lo,cklist:Lo,keeper:Ko,logist:Ko,teenth:"Value"},{opoulos:_o,borough:"Place",sdottir:_o}];const Xo="Adjective",ei="Noun",ti="Verb";var ni=[null,null,{},{neo:ei,bio:ei,"de-":ti,"re-":ti,"un-":ti},{anti:ei,auto:ei,faux:Xo,hexa:ei,kilo:ei,mono:ei,nano:ei,octa:ei,poly:ei,semi:Xo,tele:ei,"pro-":Xo,"mis-":ti,"dis-":ti,"pre-":Xo},{anglo:ei,centi:ei,ethno:ei,ferro:ei,grand:ei,hepta:ei,hydro:ei,intro:ei,macro:ei,micro:ei,milli:ei,nitro:ei,penta:ei,quasi:Xo,radio:ei,tetra:ei,"omni-":Xo,"post-":Xo},{pseudo:Xo,"extra-":Xo,"hyper-":Xo,"inter-":Xo,"intra-":Xo,"deca-":Xo},{electro:ei}];const ri="Adjective",ai="Infinitive",oi="PresentTense",ii="Singular",si="PastTense",li="Adverb",ui="Expression",ci="Actor",hi="Verb",di="Noun",mi="LastName";var pi={a:[[/.[aeiou]na$/,di,"tuna"],[/.[oau][wvl]ska$/,mi],[/.[^aeiou]ica$/,ii,"harmonica"],[/^([hyj]a+)+$/,ui,"haha"]],c:[[/.[^aeiou]ic$/,ri]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,si,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,si,"rammed"],[/.[aeiou][sg]hed$/,si,"gushed"],[/.[aeiou]red$/,si,"hired"],[/.[aeiou]r?ried$/,si,"hurried"],[/[^aeiou]ard$/,ii,"steward"],[/[aeiou][^aeiou]id$/,ri,""],[/.[vrl]id$/,ri,"livid"],[/..led$/,si,"hurled"],[/.[iao]sed$/,si,""],[/[aeiou]n?[cs]ed$/,si,""],[/[aeiou][rl]?[mnf]ed$/,si,""],[/[aeiou][ns]?c?ked$/,si,"bunked"],[/[aeiou]gned$/,si],[/[aeiou][nl]?ged$/,si],[/.[tdbwxyz]ed$/,si],[/[^aeiou][aeiou][tvx]ed$/,si],[/.[cdflmnprstv]ied$/,si,"emptied"]],e:[[/.[lnr]ize$/,ai,"antagonize"],[/.[^aeiou]ise$/,ai,"antagonise"],[/.[aeiou]te$/,ai,"bite"],[/.[^aeiou][ai]ble$/,ri,"fixable"],[/.[^aeiou]eable$/,ri,"maleable"],[/.[ts]ive$/,ri,"festive"],[/[a-z]-like$/,ri,"woman-like"]],h:[[/.[^aeiouf]ish$/,ri,"cornish"],[/.v[iy]ch$/,mi,"..ovich"],[/^ug?h+$/,ui,"ughh"],[/^uh[ -]?oh$/,ui,"uhoh"],[/[a-z]-ish$/,ri,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,mi,"polish-male"]],k:[[/^(k){2}$/,ui,"kkkk"]],l:[[/.[gl]ial$/,ri,"familial"],[/.[^aeiou]ful$/,ri,"fitful"],[/.[nrtumcd]al$/,ri,"natal"],[/.[^aeiou][ei]al$/,ri,"familial"]],m:[[/.[^aeiou]ium$/,ii,"magnesium"],[/[^aeiou]ism$/,ii,"schism"],[/^[hu]m+$/,ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,ri,"republican"],[/[^aeiou]ician$/,ci,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,ui,"noooo"],[/^(yo)+$/,ui,"yoo"],[/^wo{2,}[pt]?$/,ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,ii],[/[^i]fer$/,ai],[/.[^aeiou][ao]pher$/,ci],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,ri],[/[aeiou].*ist$/,ri],[/^[a-z]et$/,hi]],s:[[/.[^aeiou]ises$/,oi],[/.[rln]ates$/,oi],[/.[^z]ens$/,hi],[/.[lstrn]us$/,ii],[/.[aeiou]sks$/,oi],[/.[aeiou]kes$/,oi],[/[aeiou][^aeiou]is$/,ii],[/[a-z]'s$/,di],[/^yes+$/,ui]],v:[[/.[^aeiou][ai][kln]ov$/,mi]],y:[[/.[cts]hy$/,ri],[/.[st]ty$/,ri],[/.[tnl]ary$/,ri],[/.[oe]ry$/,ii],[/[rdntkbhs]ly$/,li],[/.(gg|bb|zz)ly$/,ri],[/...lly$/,li],[/.[gk]y$/,ri],[/[bszmp]{2}y$/,ri],[/.[ai]my$/,ri],[/[ea]{2}zy$/,ri],[/.[^aeiou]ity$/,ii]]};const gi="Verb",fi="Noun";var bi={leftTags:[["Adjective",fi],["Possessive",fi],["Determiner",fi],["Adverb",gi],["Pronoun",gi],["Value",fi],["Ordinal",fi],["Modal",gi],["Superlative",fi],["Demonym",fi],["Honorific","Person"]],leftWords:[["i",gi],["first",fi],["it",gi],["there",gi],["not",gi],["because",fi],["if",fi],["but",fi],["who",gi],["this",fi],["his",fi],["when",fi],["you",gi],["very","Adjective"],["old",fi],["never",gi],["before",fi],["a","Singular"],["the",fi],["been",gi]],rightTags:[["Copula",fi],["PastTense",fi],["Conjunction",fi],["Modal",fi]],rightWords:[["there",gi],["me",gi],["man","Adjective"],["only",gi],["him",gi],["it",gi],["were",fi],["took",fi],["himself",gi],["went",fi],["who",fi],["jr","Person"]]},vi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},yi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},wi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ki={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Pi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Ai=/^.([0-9]+)/;var ji=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Ai);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ai,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},xi=/^([0-9]+)/,Ni=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(xi,"")]}(n[0],n[1])})};var Ii=function(e={}){return(e=Object.assign({},e)).rules=Ni(e.rules),e.rules=Ei(e.rules),e.rev&&(e.rev=Ni(e.rev),e.rev=Ei(e.rev)),e.exceptions=Ni(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e},Gi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const Ti=Ii({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),Di=Ii(ki),Ci=Ii(yi),Oi=Ii(wi),Bi=Gi(Ti),Vi=Gi(Di),zi=Gi(Ci),$i=Gi(Oi),Fi=Ii(vi),Si=Ii(Pi);var Hi={fromPast:Ti,fromPresent:Di,fromGerund:Ci,fromParticiple:Oi,toPast:Bi,toPresent:Vi,toGerund:zi,toParticiple:$i,toComparative:Fi,toSuperlative:Si,fromComparative:Gi(Fi),fromSuperlative:Gi(Si)},Mi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),Li=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Wi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ji[t].forEach(n=>e[n]=t),e),{});var qi=Ji,Ki=function(e){let t=e.substring(e.length-3);if(!0===qi.hasOwnProperty(t))return qi[t];let n=e.substring(e.length-2);return!0===qi.hasOwnProperty(n)?qi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ui={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ri=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ki(e)),Ui.hasOwnProperty(e))c=Ui[e];else if("Participle"===n)c=ji(l,i);else if("PastTense"===n)c=ji(l,r);else if("PresentTense"===n)c=ji(l,a);else{if("Gerund"!==n)return e;c=ji(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},_i=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ji(i,n),PresentTense:ji(i,r),Gerund:ji(i,a),FutureTense:"will "+e},u=ji(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l},Qi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Zi="ically",Yi=new Set(["analyt"+Zi,"chem"+Zi,"class"+Zi,"clin"+Zi,"crit"+Zi,"ecolog"+Zi,"electr"+Zi,"empir"+Zi,"frant"+Zi,"grammat"+Zi,"ident"+Zi,"ideolog"+Zi,"log"+Zi,"mag"+Zi,"mathemat"+Zi,"mechan"+Zi,"med"+Zi,"method"+Zi,"method"+Zi,"mus"+Zi,"phys"+Zi,"phys"+Zi,"polit"+Zi,"pract"+Zi,"rad"+Zi,"satir"+Zi,"statist"+Zi,"techn"+Zi,"technolog"+Zi,"theoret"+Zi,"typ"+Zi,"vert"+Zi,"whims"+Zi]),Xi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],es=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),ts={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var ns=function(e){return e.endsWith("ly")?Yi.has(e)?e.replace(/ically/,"ical"):es.has(e)?null:ts.hasOwnProperty(e)?ts[e]:Qi(e,Xi)||e:null};const rs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],as={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var os=function(e){if(as.hasOwnProperty(e))return as[e];let t=Qi(e,rs);return t||e+"ly"};const is=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],ss={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},ls=new Set(["terrible","annoying"]),us=function(e,t){const n=t.two.models.toSuperlative;return ji(e,n)},cs=function(e,t){const n=t.two.models.toComparative;return ji(e,n)};var hs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},ds={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===hs.hasOwnProperty(i)&&hs[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Qa,nounToSingular:Wi,verbToInfinitive:Ri,getTense:Ki,verbConjugate:_i,adjToSuperlative:us,adjToComparative:cs,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ji(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return ji(e,n)},advToAdjective:ns,adjToAdverb:os,adjToNoun:function(e){if(ss.hasOwnProperty(e))return ss[e];if(ls.has(e))return null;let t=Qi(e,is);return t||e+"ness"}}}},ms=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const ps=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var gs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ps(n,"Infinitive","PastTense"),Object.assign(s,l),l=ps(r,"Infinitive","Verb"),Object.assign(s,l),l=ps(a,"Infinitive","Gerund"),Object.assign(s,l),l=ps(o,"Adjective","Superlative"),Object.assign(s,l),l=ps(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let fs={two:{models:Hi}};const bs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},vs=function(e,t){const n={model:t,methods:ds};let{lex:r,_multi:a}=ds.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ys=function(e,t,n){let r=_i(e,fs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ws=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=bs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ys(a,r,!1),"Adj|Present"===o&&(ys(a,r,!0),function(e,t,n){let r=us(e,n);t[r]=t[r]||"Superlative";let a=cs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ri(a,fs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ri(a,fs,"PastTense");r[e]||(n[e]="Infinitive")}}),t=vs(n,t)};let ks={one:{_multiCache:{},lexicon:Ya},two:{irregularPlurals:Fa,models:Hi,suffixPatterns:Yo,prefixPatterns:ni,endsWith:pi,neighbours:bi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Xa,clues:Fo,uncountable:{},orgWords:Mi}};ks=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=vs(e.one.lexicon,e)).one.lexicon,e),e=ws(e.two.switches,e),e=gs(e),e=ms(e)}(ks);var Ps=ks;const As=/^(under|over|mis|re|un|dis|semi)-?/;var js=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(As.test(a.normal)){let e=a.normal.replace(As,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},Es=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const xs={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},Ns=new Set(["formulas","koalas","israelis","menus"]),Is=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var Gs=function(e){if(!e||e.length<=3)return!1;if(Ns.has(e))return!0;let t=e[e.length-1];return xs.hasOwnProperty(t)?xs[t].find(t=>e.endsWith(t)):"s"===t&&!Is.find(t=>e.endsWith(t))};const Ts=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var Ds=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(Gs(e.normal)?Es(e,"Plural","3-plural-guess"):Es(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ki(e.normal);t&&Es(e,t,"3-verb-tense-guess")}}(r)};const Cs=/^\p{Lu}[\p{Ll}'’]/u,Os=/[0-9]/,Bs=["Date","Month","WeekDay","Unit"],Vs=/^[IVXLCDM]{2,}$/,zs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,$s={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Fs=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Cs.test(o)&&!1===Os.test(o)?Bs.find(e=>r.tags.has(e))?null:(Ds(e,t,n),r.tags.has("Noun")||r.tags.clear(),Es(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Vs.test(o)&&zs.test(o)&&!$s[r.normal]?(Es(r,"RomanNumeral","2-xvii"),!0):null};const Ss=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Hs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Ss(r.normal,n.two.suffixPatterns);if(null!==e)return Es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Ss(r.implicit,n.two.suffixPatterns),null!==e))return Es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Ms=/['‘’‛‵′`´]/,Ls=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return Es(r,e,"2-prefix"),r.confidence=.5,!0}return null};const qs=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ks=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!qs.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Us=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Rs=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var _s=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ks(a)||Ks(o))return Es(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Us(a)||Us(o))return Es(n,"Year","2-tagYear-close");if(Rs(e[t-2])||Rs(e[t+2]))return Es(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return Es(n,"Year","2-tagYear-noun")}}}return null};const Qs=/^[A-Z]('s|,)?$/,Zs=/^[A-Z-]+$/,Ys=/([A-Z]\.)+[A-Z]?,?$/,Xs=/[A-Z]{2,}('s|,)?$/,el=/([a-z]\.)+[a-z]\.?$/,tl={I:!0,A:!0};var nl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Zs.test(n)||n.length>5||tl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ys.test(n)&&!0!==el.test(n)&&!0!==Qs.test(n)&&!0!==Xs.test(n))}(r,n)?(r.tags.clear(),Es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!tl.hasOwnProperty(r.text)&&Qs.test(r.text)?(r.tags.clear(),Es(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(Es(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Zs.test(r.text)&&r.text.length<=6?(Es(r,"Acronym","3-titlecase-acronym"),!0):null};const rl=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},al=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var ol=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||rl(e[t-1],a),l=l||rl(e[t+1],o),l=l||al(e[t-1],r),l=l||al(e[t+1],i),l)return Es(s,l,"3-[neighbour]"),Ds(e,t,n),e[t].confidence=.2,!0}return null};const il=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var sl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&il(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&il(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},ll=function(e,t,n){0===e[t].tags.size&&(Es(e[t],"Noun","3-[fallback]"),Ds(e,t,n),e[t].confidence=.1)};const ul=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,cl=(e,t,n)=>0!==t||e[1]?null:n;var hl={"Adj|Gerund":(e,t)=>ul(e,t),"Adj|Noun":(e,t)=>ul(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>ul(e,t),"Adj|Present":(e,t)=>ul(e,t),"Noun|Gerund":(e,t)=>ul(e,t),"Noun|Verb":(e,t)=>ul(e,t)||cl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>ul(e,t)||cl(e,t,"PresentTense"),"Person|Noun":(e,t)=>ul(e,t),"Person|Verb":(e,t)=>0!==t&&ul(e,t)};const dl="undefined"!=typeof process&&process.env?process.env:self.env||{},ml=/^(under|over|mis|re|un|dis|semi)-?/,pl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&dl.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},gl=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&dl.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r},fl={tagSwitch:js,checkSuffix:Hs,checkRegex:Ws,checkCase:Fs,checkPrefix:Js,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(Es(o,"Verb","3-[prefix]"),Es(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(Es(o,"Adjective","3-[prefix]"),Es(o,"Prefix","3-[prefix]")))},checkYear:_s},bl={checkAcronym:nl,neighbours:ol,orgWords:sl,nounFallback:ll,switches:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ml.test(l)&&!o[l]&&(l=l.replace(ml,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=pl(e[t+1],n.afterWords);return o=o||pl(e[t-1],n.beforeWords),o=o||gl(e[t-1],n.beforeTags,a),o=o||gl(e[t+1],n.afterTags,a),o}(e,t,i[o],r);hl[o]&&(u=hl[o](e,t)||u),u?(a([s],u,n,null,`3-[variable] (${o})`),Ds(e,t,r)):dl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},vl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)},kl={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Pl={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Ol=/'/;var Bl=function(e,t){let n=e[t].normal.split(Ol)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Vl=/'/;var zl=function(e,t){let n=e[t].normal.split(Vl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]},$l=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Fl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Sl={in:!0,by:!0,for:!0};var Hl=(e,t)=>{let n=e[t];if(Fl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Sl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Ml=/'/,Ll=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},Wl={d:(e,t)=>zl(e,t),t:(e,t)=>$l(e,t),s:(e,t,n)=>Hl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Bl(e,t)},Jl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ql={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Ml.test(r[o].normal)&&([,i]=r[o].normal.split(Ml));let s=null;Wl.hasOwnProperty(i)&&(s=Wl[i](r,o,t)),s&&(s=Jl(s,e),Cl(n,[a,o],s),Ll(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=Dl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Tl},hooks:["contractionTwo"]};const Kl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ul=["i","we","they"];let Rl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Kl+" #Person",tag:"Person",reason:"randy-smith"},{match:Kl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Kl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ul,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ul,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ul,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),_l=null;var Ql={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;_l=_l||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(_l),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Rl}},hooks:["postTagger"]},Zl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},Yl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Zl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}},Xl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)},eu=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Xl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this},tu={api:function(e){e.prototype.swap=eu}};I.plugin(Nl),I.plugin(ql),I.plugin(Ql),I.plugin(Yl),I.plugin(tu);var nu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},ru=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const au={this:"Noun",then:"Pivot"};var ou=function(e){for(let t=0;t{for(let r=0;r{"Verb"===e.chunk&&(e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null))})},mu={compute:{chunks:function(e){const{document:t,world:n}=e;ou(t),iu(t),uu(e,t,n),hu(t),du(t)}},api:function(e){e.prototype.chunks=ru,e.prototype.clauses=nu},hooks:["chunks"]};const pu=/'s$/;var gu=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(pu,""),e.normal=e.normal.replace(pu,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const fu=/\(/,bu=/\)/,vu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(fu,"");let t=e[e.length-1];t.post=t.post.replace(bu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const wu={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},ku=RegExp("("+Object.keys(wu).join("|")+")"),Pu=RegExp("("+Object.values(wu).join("|")+")"),Au=function(e,t){const n=e[t].pre.match(ku)[0]||"";if(!n||!wu[n])return null;const r=wu[n];for(;t{e[0].pre=e[0].pre.replace(ku,"");let t=e[e.length-1];t.post=t.post.replace(Pu,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Eu=/\./g;var xu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Eu,""),e.normal=e.normal.replace(Eu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Eu,""),e.normal=e.normal.replace(Eu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Nu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Iu=(e,t)=>"number"==typeof t?e.eq(t):e,Gu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Tu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=Gu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return Iu(this,e).map(e=>{let n=Gu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Iu(this,e).map(e=>{let n=Gu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Iu(this,e).map(e=>{let n=Gu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Iu(this,e).map(e=>{let n=Gu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Iu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Iu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Iu(t,e),new Adjectives(t.document,t.pointer)}};const Du=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Cu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Ou=[["emojis","emoji"],["atmentions","atMentions"]];var Bu=function(e){Cu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=Du,Ou.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},Vu={api:function(e){Bu(e),gu(e),yu(e),ju(e),Tu(e),Nu(e),xu(e)}};const zu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var $u={case:e=>{zu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;zu(e,e=>e.text=n(e.text,t))},whitespace:e=>{zu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{zu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Fu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),Su="unicode|punctuation|whitespace|acronyms",Hu="|case|contractions|parentheses|quotations|emoji|honorifics",Mu={light:Fu(Su),medium:Fu(Su+Hu),heavy:Fu(Su+Hu+"|possessives|adverbs|nouns|verbs")};var Lu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mu[e]),Object.keys(e).forEach(t=>{$u.hasOwnProperty(t)&&$u[t](this,e[t])}),this}}},Wu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Ju=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var qu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Uu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Ku(e,t),isSubordinate:qu(e),root:t}};const Ru=e=>e.text(),_u=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Qu=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Zu=function(e){let t=Uu(e);return{root:Ru(t.root),number:Qu(t.number),determiner:Ru(t.determiner),adjectives:_u(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Yu={tags:!0};var Xu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Yu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Yu),e};const ec={tags:!0};var tc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ec).tag("Singular","toPlural"),e};const nc=(e,t)=>"number"==typeof t?e.eq(t):e;var rc={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return nc(this,e).map(Uu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Zu(t)),n},[])}isPlural(e){let t=this.filter(e=>Uu(e).isPlural);return nc(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Uu(e).adjectives;n.found&&(t=t.concat(n))}),nc(t,e)}toPlural(e){return nc(this,e).map(e=>Xu(e,Uu(e)))}toSingular(e){return nc(this,e).map(e=>{let t=Uu(e);return tc(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Wu(this);return t=nc(t,e),new Nouns(this.document,t.pointer)}}},ac=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},oc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(ic.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(ic.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(ic.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},lc=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const cc=/^([0-9,. ]+)\/([0-9,. ]+)$/,hc={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},dc=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var mc=function(e){if(!0===hc.hasOwnProperty(e))return hc[e];if("a"===e||"an"===e)return 1;const t=oc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=gc(n),r=gc(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:gc(n);let a=r.text("reduced");return pc.test(a)&&(a=a.replace(pc,""),r=r.replaceWith(a)),r=fc.hasOwnProperty(a)?fc[a]:gc(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:gc(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},vc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const yc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],wc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],kc=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Pc=function(e){let t=[];if(e>100)return t;for(let n=0;n=yc[n][1]&&(e-=yc[n][1],t.push(yc[n][0]));return wc[e]&&t.push(wc[e]),t};var Ac=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=vc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return kc.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Pc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=vc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")},jc=function(e){return e.numerator&&e.denominator?`${Ac({num:e.numerator})} out of ${Ac({num:e.denominator})}`:""};const Ec={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var xc=e=>{let t=Ac(e).split(" "),n=t[t.length-1];return Ec.hasOwnProperty(n)?t[t.length-1]=Ec[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Nc=function(e){if(!e.numerator||!e.denominator)return"";let t=Ac({num:e.numerator}),n=xc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Ic=(e,t)=>"number"==typeof t?e.eq(t):e;var Gc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Ic(this,e).map(bc)}get(e){return Ic(this,e).map(bc)}json(e){return Ic(this,e).map(t=>{let n=t.toView().json(e)[0],r=bc(t);return n.fraction=r,n},[])}toDecimal(e){return Ic(this,e).forEach(e=>{let{decimal:t}=bc(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return Ic(this,e).forEach(e=>{let t=bc(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return Ic(this,e).forEach(e=>{let t=bc(e),n=Nc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return Ic(this,e).forEach(e=>{let t=bc(e),n=jc(t);e.replaceWith(n)}),this}toPercentage(e){return Ic(this,e).forEach(e=>{let{decimal:t}=bc(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=ac(this);return t=Ic(t,e),new Fractions(this.document,t.pointer)}};const Tc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Dc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Tc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Tc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Tc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Tc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Tc})`),r=e.has("("+Tc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Tc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Tc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Cc=function(e){if("string"==typeof e)return{num:mc(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=bc(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=mc(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Oc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=vc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Bc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Vc={"%":"percent","°":"degrees"};var zc=function(e){let t={suffix:"",prefix:e.prefix};return Bc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Bc[e.prefix],t.prefix=""),Vc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Vc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},$c=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=zc(e);return t+xc(e)+n}if("Ordinal"===t)return e.prefix+Oc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=zc(e);return t+Ac(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Fc=(e,t)=>"number"==typeof t?e.eq(t):e;var Sc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Fc(this,e).map(Cc)}get(e){return Fc(this,e).map(Cc).map(e=>e.num)}json(e){return Fc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Cc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=Cc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=$c(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=Cc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=$c(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=Cc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=$c(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=Cc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=$c(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=Cc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=$c(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>Cc(t).num===e)}greaterThan(e){return this.filter(t=>Cc(t).num>e)}lessThan(e){return this.filter(t=>Cc(t).num{let r=Cc(n).num;return r>e&&r{let n=Cc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=$c(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Cc(e).num);let t=this.map(t=>{let n=Cc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=$c(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Dc(this);return t=Fc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Dc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=Fc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Dc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=Fc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Hc={api:function(e){Gc(e),Sc(e)}};const Mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lc=function(e={}){return!1!==(e=Object.assign({},Mc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Wc={api:function(e){e.prototype.redact=Lc}},Jc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})},qc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Kc=function(e){let t=e.clauses(),n=qc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Uc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Rc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},_c=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!(t.lookBehind("to$").found||!t.has("#Copula #Gerund")&&(t.has("#Gerund")||!t.has("#Copula")&&t.has("#PresentTense")&&e.has("(when|as|how)"))));n.found&&n.toInfinitive()}return e},Qc=function(e){return e.verbs().toInfinitive(),e};const Zc=(e,t)=>"number"==typeof t?e.eq(t):e;var Yc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Kc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Zc(this,e).map(e=>(Kc(e),Uc(e)))}toPresentTense(e){return Zc(this,e).map(e=>(Kc(e),Rc(e)))}toFutureTense(e){return Zc(this,e).map(e=>(Kc(e),e=_c(e)))}toInfinitive(e){return Zc(this,e).map(e=>(Kc(e),Qc(e)))}toNegative(e){return Zc(this,e).map(e=>(Kc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Zc(this,e).map(e=>(Kc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Zc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Zc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Zc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Jc(this);return Zc(t,e)}};Object.assign(e.prototype,t)}},Xc=function(e){return e.match("#Honorific+? #Person+")},eh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const th="male",nh="female",rh={mr:th,mrs:nh,miss:nh,madam:nh,king:th,queen:nh,duke:th,duchess:nh,baron:th,baroness:nh,count:th,countess:nh,prince:th,princess:nh,sire:th,dame:nh,lady:nh,ayatullah:th,congressman:th,congresswoman:nh,"first lady":nh,mx:null};var ah=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return nh;if(n.has("#MaleName"))return th;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),rh.hasOwnProperty(e))return rh[e];if(/^her /.test(e))return nh;if(/^his /.test(e))return th}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return th;if(n&&!t)return nh}return null};const oh=(e,t)=>"number"==typeof t?e.eq(t):e;var ih=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return oh(this,e).map(eh)}json(e){return oh(this,e).map(t=>{let n=t.toView().json(e)[0],r=eh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ah(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Xc(this);return t=oh(t,e),new People(this.document,t.pointer)}},sh=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found),t=t.splitAfter(n),t},lh=function(e){e.prototype.places=function(t){let n=sh(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},uh=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const ch=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var hh=function(e){e.prototype.topics=ch},dh={api:function(e){ih(e),lh(e),uh(e),hh(e)}},mh=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},ph=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},gh=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const fh=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},bh=function(e){return e.match("#Negative")},vh=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var yh=function(e){let t=e.clone();t.contractions().expand();const n=ph(t);return{root:n,prefix:t.match("#Prefix"),adverbs:gh(t,n),auxiliary:fh(t,n),negative:bh(t),phrasal:vh(n)}};const wh={tense:"PresentTense"},kh={conditional:!0},Ph={tense:"FutureTense"},Ah={progressive:!0},jh={tense:"PastTense"},Eh={complete:!0,progressive:!1},xh={passive:!0},Nh=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},Ih={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[wh]],["^wanted to #Infinitive$",[jh]],["^will want to #Infinitive$",[Ph]]],"gerund-phrase":[["^#PastTense #Gerund$",[jh]],["^#PresentTense #Gerund$",[wh]],["^#Infinitive #Gerund$",[wh]],["^will #Infinitive #Gerund$",[Ph]],["^have #PastTense #Gerund$",[jh]],["^will have #PastTense #Gerund$",[jh]]],"simple-present":[["^#PresentTense$",[wh]],["^#Infinitive$",[wh]]],"simple-past":[["^#PastTense$",[jh]]],"simple-future":[["^will #Adverb? #Infinitive",[Ph]]],"present-progressive":[["^(is|are|am) #Gerund$",[wh,Ah]]],"past-progressive":[["^(was|were) #Gerund$",[jh,Ah]]],"future-progressive":[["^will be #Gerund$",[Ph,Ah]]],"present-perfect":[["^(has|have) #PastTense$",[jh,Eh]]],"past-perfect":[["^had #PastTense$",[jh,Eh]],["^had #PastTense to #Infinitive",[jh,Eh]]],"future-perfect":[["^will have #PastTense$",[Ph,Eh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[jh,Ah]]],"past-perfect-progressive":[["^had been #Gerund$",[jh,Ah]]],"future-perfect-progressive":[["^will have been #Gerund$",[Ph,Ah]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[jh,xh]],["^(was|were) being (#PastTense|#Participle)",[jh,xh]],["^(had|have) been (#PastTense|#Participle)",[jh,xh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[wh,xh]],["^(is|are|am) being (#PastTense|#Participle)",[wh,xh]],["^has been (#PastTense|#Participle)",[wh,xh]]],"passive-future":[["will have been (#PastTense|#Participle)",[Ph,xh,kh]],["will be being? (#PastTense|#Participle)",[Ph,xh,kh]]],"present-conditional":[["would be #PastTense",[wh,kh]]],"past-conditional":[["would have been #PastTense",[jh,kh]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Ph]]],"auxiliary-past":[["^did #Infinitive$",[jh,{plural:!1}]],["^used to #Infinitive$",[jh,Eh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[wh,Eh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[jh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Gh=[];Object.keys(Ih).map(e=>{Ih[e].forEach(t=>{Gh.push({name:e,match:t[0],data:Nh(t[1])})})});var Th=Gh,Dh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Ch(r)&&(n.remove(r),r=n.last()),Ch(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Oh(t,e)}};const Vh=e=>e,zh=(e,t)=>{let n=Bh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},$h=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Bh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Fh=function(e,t){let n=Bh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Sh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Hh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Sh(e)),r&&e.replace(t.root,r),e},Mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Lh=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal):[]},Wh=function(e){return e&&e.isView?e.text("normal"):""},Jh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Sh(e))};var qh=function(e){let t=yh(e);e=e.clone().toView();const n=Dh(e,t);return{root:t.root.text(),preAdverbs:Lh(t.adverbs.pre),postAdverbs:Lh(t.adverbs.post),auxiliary:Wh(t.auxiliary),negative:t.negative.found,prefix:Wh(t.prefix),infinitive:Jh(t.root),grammar:n}};const Kh={tags:!0};var Uh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Sh(r)),i&&e.replace(r,i,Kh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Fh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Rh={tags:!0},_h={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Sh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Bh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Rh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=_h.simple(e,t),e=_h.noAux(e,t))},hasHad:e=>(e.replace("has","had",Rh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Sh(a)),n(o,e.model).Participle}},Qh={infinitive:_h.simple,"simple-present":_h.simple,"simple-past":Vh,"simple-future":_h.both,"present-progressive":e=>(e.replace("are","were",Rh),e.replace("(is|are|am)","was",Rh),e),"past-progressive":Vh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":_h.hasHad,"past-perfect":Vh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Mh(e)),e.remove("have"),e),"present-perfect-progressive":_h.hasHad,"past-perfect-progressive":Vh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Rh),e),"passive-past":e=>(e.replace("have","had",Rh),e),"passive-present":e=>(e.replace("(is|are)","was",Rh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Rh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Vh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Rh),e),"auxiliary-past":Vh,"auxiliary-present":e=>(e.replace("(do|does)","did",Rh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Rh):(_h.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Vh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Rh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),_h.simple(e,t),Mh(e),e)};var Zh=function(e,t,n){return Qh.hasOwnProperty(n)?((e=Qh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Yh={tags:!0},Xh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Sh(a)),!1===zh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=$h(e)),o&&(e=e.replace(a,o,Yh)).not("#Particle").tag("PresentTense"),e},ed=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Sh(a)),!1===zh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Yh)).not("#Particle").tag("Gerund"),e},td={infinitive:Xh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Xh(e,t);{let t=Bh(e).subject;if(zh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Yh)}return e},"simple-past":Xh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=$h(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Xh(e,t),e=e.remove("will");return e},"present-progressive":Vh,"past-progressive":(e,t)=>{let n=$h(e);return e.replace("(were|was)",n,Yh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Xh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Bh(e).subject;return zh(e)||n.has("i")?((e=Hh(e,t)).remove("had"),e):(e.replace("had","has",Yh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Vh,"past-perfect-progressive":e=>e.replace("had","has",Yh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=$h(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Yh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Vh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Vh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(ed(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Fh(e);return e.replace(t.auxiliary,n),e}return ed(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Vh,"modal-infinitive":Vh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Sh(r)),a&&(e=e.replace(t.root,a,Yh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return zh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Yh),e.remove("will"),e}};var nd=function(e,t,n){return td.hasOwnProperty(n)?((e=td[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const rd={tags:!0},ad=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Sh(r)),o&&(e=e.replace(r,o,rd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},od=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Sh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,rd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},id={infinitive:ad,"simple-present":ad,"simple-past":ad,"simple-future":Vh,"present-progressive":od,"past-progressive":od,"future-progressive":Vh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Vh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Vh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Vh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Vh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Vh,"modal-past":Vh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ad(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var sd=function(e,t,n){return e.has("will")||e.has("going to")?e:id.hasOwnProperty(n)?((e=id[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const ld={tags:!0};var ud=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Sh(a));let s=r(i,e.model).Gerund;return s&&(s=`${$h(e)} ${s}`,e.replace(a,s,ld)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const cd={tags:!0},hd=function(e,t){let n=Fh(e);return e.prepend(n+" not"),e},dd=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},md=e=>e.has("(is|was|am|are|will|were|be)"),pd={"simple-present":(e,t)=>!0===md(e)?dd(e):(e=Hh(e,t),e=hd(e)),"simple-past":(e,t)=>!0===md(e)?dd(e):((e=Hh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===md(e)?dd(e):hd(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",cd),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=hd(e)).replace("wants","want",cd)};var gd=function(e,t,n){if(e.has("#Negative"))return e;if(pd.hasOwnProperty(n))return e=pd[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===md(e)?dd(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const fd=(e,t)=>"number"==typeof t?e.eq(t):e;var bd={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return fd(this,e).map(yh)}json(e,t){return fd(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=qh(t),n},[])}subjects(e){return fd(this,e).map(e=>(yh(e),Bh(e).subject))}adverbs(e){return fd(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return fd(this,e).filter(e=>!0!==Bh(e).plural)}isPlural(e){return fd(this,e).filter(e=>!0===Bh(e).plural)}isImperative(e){return fd(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return Uh(e,t,n.form)})}toPresentTense(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return nd(e,t,n.form)})}toPastTense(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return Zh(e,t,n.form)})}toFutureTense(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return sd(e,t,n.form)})}toGerund(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return ud(e,t,n.form)})}conjugate(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Uh(e.clone(),t,n.form).text("normal"),PastTense:Zh(e.clone(),t,n.form).text("normal"),PresentTense:nd(e.clone(),t,n.form).text("normal"),FutureTense:sd(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return fd(this,e).map(e=>{let t=yh(e),n=Dh(e,t);return gd(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=mh(this);return t=fd(t,e),new Verbs(this.document,t.pointer)}}};I.plugin(mu),I.plugin(Vu),I.plugin(Lu),I.plugin(rc),I.plugin(Hc),I.plugin(Wc),I.plugin(Yc),I.plugin(dh),I.plugin(bd);let vd=I.world();const yd=I.methods().one.tokenize.splitSentences;var wd=function(e,t=1){let n=function(e,t=1){const n=Math.ceil(e.length/t),r=new Array(t);for(let a=0,o=0;aconsole.error(e)),n.push(s)}return n};let Ad=c.default.cpus().length;var jd={lib:{workerPool:function(e,t){let n=this;"string"==typeof t&&(t=n.parseMatch(t));let r=Pd(Ad,t),a=wd(e,Ad),o=[],i=r.map(e=>!0);return r.forEach((e,t)=>{e.postMessage({type:"work",work:a[t]||[]})}),new Promise(e=>{r.forEach(t=>{t.on("message",t=>{if("match"===t.type&&t.match.forEach(e=>{o.push(e)}),"drained"===t.type){let a=t.status.workerIndex;if(i[a]=!1,i.every(e=>!1===e)){let t=n("");t.document=o,r.forEach(e=>e.terminate()),e(t)}}})})})}}},Ed=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))},xd={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Ed(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};const Nd={lib:Object.assign({},h.lib,m.lib,jd.lib,xd.lib)};e.default=Nd,e.keyPress=m,e.lazyParse=xd,e.streamFile=h,e.workerPool=jd,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fs"),require("path"),require("url"),require("worker_threads"),require("os")):"function"==typeof define&&define.amd?define(["exports","fs","path","url","worker_threads","os"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).compromiseSpeed={},e.fs,e.path,e.url,e.worker_threads,e.os); diff --git a/plugins/speed/builds/compromise-speed.mjs b/plugins/speed/builds/compromise-speed.mjs index 6b85ab573..3808fa936 100644 --- a/plugins/speed/builds/compromise-speed.mjs +++ b/plugins/speed/builds/compromise-speed.mjs @@ -1,2 +1,2 @@ -import*as e from"fs";import t from"path";import{fileURLToPath as n}from"url";import{Worker as r}from"worker_threads";import a from"os";var o={lib:{streamFile:function(t,n,r={}){const a=this;let o=a.model();const i=a.methods().one.tokenize.splitSentences,s=e.createReadStream(t,r);let l="",u=[];const c=e=>{let t=a(e),r=n(t);r&&r.found&&r.docs.forEach(e=>u.push(e))};return new Promise((e,t)=>{s.on("data",(function(e){l+=e;let[t,n]=function(e){let t=l.substring(e.length-300),n=i(t,o),r=n[n.length-1];return[e.substr(0,e.length-r.length),r]}(l);c(t),l=n})),s.on("end",(function(){c(l);let t=a("");t.document=u,e(t)})),s.on("error",(function(e){console.error(e.stack),t(e)}))})}}};let i={};var s={lib:{keyPress:function(e,t,n={}){const r=this;let a=(0,this.methods().one.tokenize.splitSentences)(e,this.model()),o=[];return a.forEach(e=>{if(!0===i.hasOwnProperty(e))o.push(i[e].data),i[e].used=!0;else{n.verbose&&console.log(`parsing: '${e}'\n`);let a=r(e,t).json(0);i[e]={data:a,used:!0},o.push(a)}}),Object.keys(i).forEach(e=>{!0!==i[e].used?delete i[e]:i[e].used=null}),n.verbose&&console.log(Object.keys(i).length+"' sentences in cache\n"),r(o)}}};var l={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var u={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(e=>t.compute.hasOwnProperty(e)&&n[e](this)):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var c={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]);return e(r,n)});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const h={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=[];this.docs.forEach(e=>{e.forEach(e=>{let[n,r]=e.index||[];t.push([n,r,r+1])})});let n=this.update(t);return"number"==typeof e?n.eq(e):n},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer,n=this._cache||[];if(t||(t=this.docs.map((e,t)=>[t])),t[e]){let r=this.update([t[e]]);return r._cache=n[e],r}return this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};h.group=h.groups,h.fullSentence=h.fullSentences,h.sentence=h.fullSentences,h.lastTerm=h.lastTerms,h.firstTerm=h.firstTerms;var d=h;const m=Object.assign({},d,u,c);m.get=m.eq;var p=m;class View{constructor(e,t,n={}){[["document",e],["world",l],["_groups",n],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=t}get docs(){let e=this.document;return this.ptrs&&(e=l.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(t._cache&&e&&e.length>1){let n=[];e.forEach(e=>{1===e.length&&n.push(t._cache[e[0]])}),t._cache=n}return t.world=this.world,t}toView(e){return void 0===e&&(e=this.pointer),new View(this.document,e)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon","preTagger"]),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,p);var g=View;const f=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var v=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(f(n))for(const r in n)f(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const b=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var y=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(b(e)){if(b(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(b(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let w=Object.assign({},l);const k=function(e,t){t&&k.addWords(t);let n=y(e,g,w);return e&&n.compute(w.hooks),n};Object.defineProperty(k,"_world",{value:w,writable:!0}),k.tokenize=function(e,t){const{compute:n}=this._world;t&&k.addWords(t);let r=y(e,g,w);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},k.plugin=function(e){return v(e,this._world,g,this),this},k.extend=k.plugin,k.world=function(){return this._world},k.model=function(){return this._world.model},k.methods=function(){return this._world.methods},k.hooks=function(){return this._world.hooks},k.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},k.version="14.2.0-rc2";var P=k;const A={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var j={api:function(e){Object.assign(e.prototype,A)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),E=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},x=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},I=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},G=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?x(n):(x(n),x([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!N(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||N(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),E(e,o,n)},T=(new Date).getTime(),C=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];var r=(new Date).getTime()-T;r=parseInt(r,10),t=t>46655?46655:t,n=n>1294?1294:n;let a=C((r=r>46655?46655:r).toString(36));a+=C(t.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,a+=o,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const O=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},B=e=>"[object Array]"===Object.prototype.toString.call(e),V=function(e,t,n){const{document:r,world:a}=t;let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:B(e)?B(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=D(e),e))}(d),n?(O(t.update([u]).firstTerm()),G(h,u,d,r)):(O(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(F,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon","preTagger"]);return t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},S.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var H=S;var M=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const L={remove:function(e){const{indexN:t}=this.methods.one.pointer;let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=M(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};L.delete=L.remove;var W=L;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var q=J;var K={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const U=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),_=new Set(["alpha","alphabetical"]);var Q={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if("function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return U.has(e)&&(e="sequential"),_.has(e)&&(e="alpha"),R.has(e)?(a=K.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof K[e]?(a=a.sort(K[e]),this.update(a.map(e=>e.pointer))):this}};const Z=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var X={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return E(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=Z(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=Z(this.document,e);return this.document=t,this.all()}var a;return this}};var Y={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const ee=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},$,H,W,q,Q,X,Y);var te={api:function(e){Object.assign(e.prototype,ee)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null};var ue=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var he=(e,t)=>["je",e[t].normal.split(ce)[1]],de=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,3}[a-z]{0,2}) ?[-–—] ?([0-9]{1,3}[a-z]{0,2})$/i,ge=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i;var fe=function(e,t){let n=e[t];if(!0===n.tags.has("PhoneNumber"))return null;let r=n.text.match(pe);return null!==r?[r[1],"to",r[2]]:(r=n.text.match(ge),null!==r?[r[1],"to",r[4]]:null)};const ve=/'/,be=/^[0-9][^-–—]*[-–—].*?[0-9]/,ye=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger","index"])},we={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},ke={j:(e,t)=>he(e,t),l:(e,t)=>de(e,t),d:(e,t)=>me(e,t)},Pe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ve.test(r[s].normal)&&([l,u]=r[s].normal.split(ve));let c=Pe(o,r[s],l,u);!c&&we.hasOwnProperty(u)&&(c=we[u](r,s,t)),!c&&ke.hasOwnProperty(l)&&(c=ke[l](r,s)),c?(c=Ae(c,e),re(n,[i,s],c),ye(n[i],e,s,c.length)):be.test(r[s].normal)&&(c=fe(r,s),c&&(c=Ae(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t),ye(n[i],e,s,c.length)))}})}},hooks:["contractions"]};var Ne=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Ee.test(l)){let e=l.replace(Ee,"");if(i.hasOwnProperty(e)&&e.length>3&&xe.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ge={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=r.toLowerCase().trim()).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var Te=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ce=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Be=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Ve=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Be(e.goNext,void 0),e.failTo=Be(e.failTo,0),e.endAs=Be(e.endAs,null),e};var ze={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Te(e,this.world));var r;let a=Oe(this,n,t);return a=a.settle(),a}},lib:{compile:function(e){const t=Te(e,this.world());return Ve(t)}}};const $e=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Fe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=$e(n,t),Object.keys(r).forEach(e=>{r[e]=$e(r[e],t)}),{ptrs:n,byGroup:r}},Se=e=>"[object Object]"===Object.prototype.toString.call(e),He=e=>e&&Se(e)&&!0===e.isView,Me=e=>e&&Se(e)&&!0===e.isNet;var Le={matchOne:function(e,t,n){const r=this.methods.one;if(He(e))return this.intersection(e).eq(0);if(Me(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Fe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(He(e))return this.intersection(e);if(Me(e))return this.sweep(e,{tagger:!1}).view.settle();"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Fe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(He(e)){return e.fullPointer.length>0}if(Me(e))return this.sweep(e,{tagger:!1}).view.found;"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(He(e))return this.filter(t=>t.intersection(e).found);if(Me(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}"string"==typeof e&&(e=r.killUnicode(e,this.world),e=r.parseMatch(e,n));let a={regs:e,group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(He(e))return this.filter(t=>!t.intersection(e).found);if(Me(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}"string"==typeof e&&(e=a.killUnicode(e,this.world),e=a.parseMatch(e,n));let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var We={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Je=function(e,t){return[e[0],e[1],t[2]]},qe=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Ke=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Ue={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Ke(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Je(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Ke(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=qe(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Je(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Ke(e,this)),this.update(o)}};Ue.split=Ue.splitAfter;var Re=Ue;const _e=Object.assign({},Le,We,Re);_e.lookBehind=_e.before,_e.lookBefore=_e.before,_e.lookAhead=_e.after,_e.lookAfter=_e.after,_e.notIf=_e.ifNo;var Qe=function(e){Object.assign(e.prototype,_e)};const Ze=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,Xe=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,Ye=/ /g,et=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),tt=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var nt=function(e){let t=e.split(Ze),n=[];t.forEach(e=>{et(e)?n.push(e):n=n.concat(e.split(Xe))}),n=tt(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||et(e)?r.push(e):r=r.concat(e.split(Ye))}),r=tt(r),r};const rt=/\{([0-9]+)?(, *[0-9]*)?\}/,at=/&&/,ot=new RegExp(/^<\s*(\S+)\s*>/),it=e=>e.charAt(0).toUpperCase()+e.substring(1),st=e=>e.charAt(e.length-1),lt=e=>e.charAt(0),ut=e=>e.substring(1),ct=e=>e.substring(0,e.length-1),ht=function(e){return e=ut(e),e=ct(e)},dt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===st(e)&&(n.end=!0,e=ct(e)),"^"===lt(e)&&(n.start=!0,e=ut(e)),("["===lt(e)||"]"===st(e))&&(n.group=null,"["===lt(e)&&(n.groupStart=!0),"]"===st(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===lt(e))){const t=ot.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===st(e)&&(n.greedy=!0,e=ct(e)),"*"!==e&&"*"===st(e)&&"\\*"!==e&&(n.greedy=!0,e=ct(e)),"?"===st(e)&&(n.optional=!0,e=ct(e)),"!"===lt(e)&&(n.negative=!0,e=ut(e)),"~"===lt(e)&&"~"===st(e)&&e.length>2&&(e=ht(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===lt(e)&&")"===st(e)){at.test(e)?(n.choices=e.split(at),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=ut(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ct(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>dt(e,t))),e=""}if("/"===lt(e)&&"/"===st(e))return e=ht(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===lt(e)&&"}"===st(e))return e=ht(e),/\//.test(e)?(n.sense=e,n.greedy=!0):n.machine=e,n;if("<"===lt(e)&&">"===st(e))return e=ht(e),n.chunk=it(e),n.greedy=!0,n;if("%"===lt(e)&&"%"===st(e))return e=ht(e),n.switch=e,n}return!0===rt.test(e)&&(e=e.replace(rt,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===lt(e)?(n.tag=ut(e),n.tag=it(n.tag),n):"@"===lt(e)?(n.method=ut(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var mt=dt;var pt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var gt=function(e,t={}){if(null==e||""===e)return[];"number"==typeof e&&(e=String(e));let n=nt(e);return n=n.map(e=>mt(e,t)),n=pt(n),n};const ft=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var vt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),jt=(e,t)=>-1!==e.pre.indexOf(t),Nt={hasQuote:e=>yt.test(e.pre)||wt.test(e.post),hasComma:e=>At(e,","),hasPeriod:e=>!0===At(e,".")&&!1===At(e,"..."),hasExclamation:e=>At(e,"!"),hasQuestionMark:e=>At(e,"?")||At(e,"¿"),hasEllipses:e=>At(e,"..")||At(e,"…")||jt(e,"..")||jt(e,"…"),hasSemicolon:e=>At(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>kt.test(e.post)||kt.test(e.pre),hasDash:e=>Pt.test(e.post)||Pt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Nt.hasQuotation=Nt.hasQuote;var Et=Nt;let xt=function(){};xt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(bt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Et[t.method]&&!0===Et[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>xt(e,t,n,r)):t.choices.some(t=>xt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var It=xt;const Gt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Tt(e,e.t).length=r-e.t}return e.t=r,!0};const Dt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=It(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&It(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Tt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Vt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==It(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var zt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=It(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&It(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var $t=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ft=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var St=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&zt(e),r.implicit&&e.terms[e.t+1]&&Ft(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!$t(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Tt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Ht=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Gt(e,a))if(!0!==It(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Vt(a))return null}if(!0!==e.optional)return null}else{if(!St(a))return null}else{if(!St(a))return null}else{if(!St(a))return null}else{if(!Bt(a))return null}else{if(!Ot(a))return null}else{if(!Ct(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var Mt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Lt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Wt=function(e,t,n){let r=Ht(e,t,0,e.length);return r?(r=Lt(r,n),r):null};var Jt={api:Qe,methods:{one:{termMethods:Et,parseMatch:gt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Wt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Mt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t)}}};const qt=/^\../,Kt=/^#./,Ut=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),qt.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var Rt={html:function(e){let{starts:t,ends:n}=Ut(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(Qt,""),Xt.test(a)&&(a=" "),a=a.replace(Zt,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(Qt,""),a="-"===a?" ":a.replace(_t,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&Yt.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},tn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};tn.clean=tn.normal,tn.reduced=tn.root;var nn=tn;const rn={text:!0,terms:!0};let an={case:"none",unicode:"some",form:"machine",punctuation:"some"};const on=function(e,t){return Object.assign({},e,t)},sn={text:e=>en(e,{keepPunct:!0},!1),normal:e=>en(e,on(nn.normal,{keepPunct:!0}),!1),implicit:e=>en(e,on(nn.implicit,{keepPunct:!0}),!1),machine:e=>en(e,an,!1),root:e=>en(e,on(an,{form:"root"}),!1),offset:e=>{let t=sn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};sn.sentences=sn.sentence,sn.clean=sn.normal,sn.reduced=sn.root;const ln={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},rn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&sn[o]&&(a[o]=sn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};ln.data=ln.json;var un=ln;var cn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var hn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var dn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(hn.blue("\n ──────")),t.forEach(e=>{console.log(hn.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=hn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=hn.blue(" │ ")+hn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return hn[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var mn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(hn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(hn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(hn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(hn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var pn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${hn.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const gn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var bn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&nn.hasOwnProperty(e)?t=Object.assign({},nn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Pn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var An=function(e,t){let n=Pn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var jn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Pn,splitAll:An}}};var Nn=function(e,t){let n=e.concat(t),r=Pn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>kn(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var xn=function(e,t){let n=Pn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>kn(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Gn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Tn={union:function(e){e=In(e,this);let t=Nn(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)}};Tn.and=Tn.union,Tn.intersection=function(e){e=In(e,this);let t=xn(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)},Tn.not=function(e){e=In(e,this);let t=En(this.fullPointer,e.fullPointer);return t=Gn(t,this.document),this.toView(t)},Tn.difference=Tn.not,Tn.complement=function(){let e=this.all(),t=En(e.fullPointer,this.fullPointer);return t=Gn(t,this.document),this.toView(t)},Tn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=Nn(e,[t])}),e=Gn(e,this.document),this.update(e)};var Cn={methods:jn,api:function(e){Object.assign(e.prototype,Tn)}};var Dn=function(e,t){const n=t.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo])}),e};function On(e,t,n){return e.splice(t,1,...n),e}const Bn=function(e){return e.fastOr?Array.from(e.fastOr).map(e=>[{word:e}]):e.choices},Vn=function(e,t){let n=Object.assign({},e,t);return delete n.choices,delete n.fastOr,delete n.operator,n};var zn=function(e){let t=[];return e.forEach(e=>{for(let n=0;n{let a=Object.assign({},e);a.regs=a.regs.slice(0),r=r.map(t=>Vn(e.regs[n],t)),a.regs=On(a.regs,n,r),t.push(a)})}}t.push(e)}),t};const $n=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var Fn=function(e){return e.forEach(e=>{e.needs=Array.from(function(e){let t=new Set;return e.forEach(e=>{let n=$n(e);n?t.add(n):"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=$n(e);n&&t.add(n)})})}),t}(e.regs)),e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Sn=function(e){let t={};return e.forEach(e=>{e.needs.forEach(n=>{t[n]=t[n]||[],t[n].push(e)})}),t};var Hn=function(e,t){return e.map(e=>{let n=[];return e.forEach(e=>{t.hasOwnProperty(e)&&(n=n.concat(t[e]))}),new Set(n)})};var Mn=function(e,t){for(let n=0;ne.needs.every(e=>r.has(e))),e[n]=e[n].filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))}return e};var Ln=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var Wn=function(e,t){let[n,r,a]=e.pointer,o=t[n],i=r>4?r-2:0,s=e.tag||"";var l;l=e.tag,"[object Array]"===Object.prototype.toString.call(l)&&(s=e.tag.join(" #"));let u=e.reason||e.match;u=u?`|${u}|`:"";let c=(" "+u).padEnd(20)+" - ";const h=e=>""+e+"";for(;ia+2);i+=1){let e=o[i].machine||o[i].normal;c+=i>r&&i{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=Dn(e,t),e=zn(e);let n=(e=Fn(e)).filter(e=>0===e.needs.length),r=Sn(e);return delete r["#Noun"],delete r["#Verb"],{index:r,always:n}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Hn(a,t.index);return o=Mn(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Ln(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;const l="undefined"!=typeof process&&process.env?process.env:self.env||{};return l.DEBUG_TAGS&&console.log(`\n → ${e.length} corrections:`),e.map(e=>{if(!e.tag&&!e.chunk)return;let a=e.reason||e.match;l.DEBUG_TAGS&&Wn(e,t);let u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===Jn(u,e.tag,r))return;if("-"===u[u.length-1].post)return}void 0!==e.tag&&(i(u,e.tag,n,e.safe,a),1===u.length&&"Noun"===e.tag&&u[0].text&&null!==u[0].text.match(/..s$/)&&i(u,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach(t=>t.chunk=e.chunk)})}}}};const Kn=/ /,Un=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Rn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(25)} ${(e=>""+e+"")(n)}`)})(e[0],t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Kn.test(t))!function(e,t,n,r){let a=t.split(Kn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Rn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;n_n(e,t,n,r))};var Qn=_n;var Zn=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>Xn({id:e})),t}return[Xn({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},nr=e=>"[object Array]"===Object.prototype.toString.call(e),rr=e=>(e=e||"").trim(),ar=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||Yn.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:er(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=Xn({});return e.forEach(e=>{if((e=Xn(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(tr(t=e).forEach(Xn),t);var t},or=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return tr(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},ir=function(e){let t=tr(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},sr={text:or,txt:or,array:ir,flat:ir},lr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(or(e,!0)),null):sr.hasOwnProperty(t)?sr[t](e):e},ur=e=>{tr(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},cr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=rr(e),!cr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||Xn({});return new g$1(t)}add(e,t={}){if(nr(e))return e.forEach(e=>this.add(rr(e),t)),this;e=rr(e);let n=Xn({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=rr(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return tr(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=tr(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return tr(this.json)}fillDown(){var e;return e=this.json,tr(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else nr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){ur(this.json);let e=tr(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return ur(this.json),lr(this.json,e)}debug(){return ur(this.json),lr(this.json,"debug"),this}}const hr=function(e){let t=ar(e);return new g$1(t)};hr.prototype.plugin=function(e){e(this)};var dr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const mr=function(e){if(dr.hasOwnProperty(e.id))return dr[e.id];if(dr.hasOwnProperty(e.is))return dr[e.is];let t=e._cache.parents.find(e=>dr[e]);return dr[t]};var pr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:mr(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const gr=function(e){return e?"string"==typeof e?[e]:e:[]};var fr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=gr(e[t].children),e[t].not=gr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var vr={one:{setTag:Qn,unTag:Zn,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=fr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return hr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return pr(n)}}};const br=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var yr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),br(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return br(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var wr=function(e){Object.assign(e.prototype,yr)};var kr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Pr=new Set(["Auxiliary","Possessive"]);var Ar={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(Pr.has(e)||!t.hasOwnProperty(n))return 1;if(Pr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:vr,api:wr,lib:kr};const jr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Nr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex -var Er=function(e){let t=[],n=e.split(Nr);for(let e=0;e0&&(r.push(t),a[e]="")}if(0===r.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Jr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡°¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,qr=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Kr=/['’]/,Ur=/^[a-z]\.([a-z]\.)+/i,Rr=/^[-+.][0-9]/,_r=/^'[0-9]{2}/;var Qr=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Jr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Rr.test(e)?"'"===n&&_r.test(e)?(n="",t):"":(n="",t)))).replace(qr,a=>(r=a,Kr.test(a)&&/[sn]['’]$/.test(t)&&!1===Kr.test(n)?(r=r.replace(Kr,""),"'"):!0===Ur.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var Zr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Xr=/([A-Z]\.)+[A-Z]?,?$/,Yr=/^[A-Z]\.,?$/,ea=/[A-Z]{2,}('s|,)?$/,ta=/([a-z]\.)+[a-z]\.?$/;var na=function(e){return function(e){return!0===Xr.test(e)||!0===ta.test(e)||!0===Yr.test(e)||!0===ea.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var ra=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Zr(r),r=n(r,t),r=na(r),e.normal=r};var aa={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Br,splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Lr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Sr(n),n=$r(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=Qr(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",r).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{ra(e,t)}),n})}}}};var oa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ia={},sa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","ft","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","gb","tb","lx","lm","pa","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ia[t]=!0,sa[t]="Abbreviation",void 0!==e[1]&&(sa[t]=[sa[t],e[1]])})});var la=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mid","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let ua={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"µÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰμυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ca={};Object.keys(ua).forEach((function(e){ua[e].split("").forEach((function(t){ca[t]=e}))}));const ha=/\//,da=/[a-z]\.[a-z]/i,ma=/[0-9]/;var pa=function(e,t){let n=e.normal||e.text;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ha.test(n)&&!da.test(n)&&!ma.test(n)){let t=n.split(ha);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const ga=/^\p{Letter}+-\p{Letter}+$/u;var fa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ga.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var va=function(e){let t=0,n=0,r=e.document;for(let e=0;eba(e,pa),machine:e=>ba(e,fa),normal:e=>ba(e,ra),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const Pa={safe:!0,min:3};var Aa={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=wa},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},Pa,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ka(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};P.extend(te),P.extend(wn),P.extend(Jt),P.extend(Cn),P.extend(Ar),P.plugin(je),P.extend(ya),P.plugin(j),P.extend(ze),P.extend(Aa),P.extend(Ge),P.extend(qn);var ja={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Na={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shiba,y1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba,c",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7S;1:6L;2:7O;3:7Z;4:7Y;5:82;6:6X;7:7I;8:75;9:6T;a7Kb6Wc5Vd5Ae52f4Eg44h3Wi3Qj3Ok3Ml3Cm33n2Zo2Vp21ques7Mr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4U;aHeaGhEiCoAre7M;nd0rA;k,ry;mp,nApe,re,sh,tne84;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra83;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l3A;pAsh0;da4gra50;aLeKhrJiIoHrDuBwiAy4O;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Sss,t76u2;ck,e,me,p,re;e1Now,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6CpPtFuBwA;ear,it2;b1Yit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6CeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6MrAy;ay,e12ink6u3;n,r6Ite;n,rk;ee1Fow;e0Fi6o43;eep,iA;ce,p,t;ateboa5ZiA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i33;pe,re;aBed,nArv16t;se,t1Y;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0J;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1C;as5EcOdo,el,fMgLje5lKmInHo0VpFque7sCturn,vAwa5C;eAi1J;al,r1;er5JoBt,uA;lt,me;l5Hrt;air,eaAly,o3Z;l,t;dezvo26t;aAedy;ke,rk;ea1i3F;a50ist0r4E;act5Eorm,uA;nd,se;aAo4Xru8;ll;ck,i1ke,l48nAtV;ge,k;a00eXhViSlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5E;!me;ed,ss;ce,de;sAy;er4Us;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4I;aCeBuA;g,n9;ad;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Um8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2T;d0ie4S;ze;je5;a3LeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Unit44p,ve;lk,n2Yrr43x;asu12n3OrAss;ge,it;il,nBp,rk2ZsAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o25;e2DiAno3C;ck,ll,ss;am,o17uA;d9i3;mpEnBr36ssA;ue;cr19dex,fluBha6k,se1VterviAvoi3;ew;en3;a5le1Q;aEeCiBoAu3S;ld,no1Tok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo30m,ne3Hve7;!le;aIeek,lo3FoHrCuA;arAe3Ei0Nn;antee,d;aCiBoAumb6;om,u2B;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Fd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Om;us;aCe0Kip,oAy;at,od,wA;!er;g,re,sh,vo0Z;eDgClBnAre,sh,t,x;an3i0F;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo21;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0J;en3me2J;el,han9;caAtima4;pe;count0d,gine0vy;aSeMiGoFrBuAye;b,mp,pli24;aCeBiA;ft,nk,ve;am,ss;ft,in;cu05d9ubt;p,sCvA;e,iAor3;de;char9liBpA;at2lay;ke;al,ba4cDfeClBma0Wpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou08romi1;me1C;a06e1Bu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi09nBrAse,uffe0F;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aTeQiPlMoIrDuAypa0N;bb6ck6dgBff0lArn,st,zz;ly;et;anDeaCid9oadA;ca7;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:56;1:4F;2:55;3:4S;4:4Q;5:4L;6:4P;7:4Z;8:4G;a4Pb44c37d2Ue2Nf2Dg22h1Qin1Njel3k1Ll1Im19n16o12p0Lqu0Kr0BsStJuGvCw9;a9ha39om29;f1i4Tt0Cy9;! arou4C;arn4DeAo9;cabu05l50;gIr9;di6t1H;nc32p2PrAs 9;do3Ps53;bani2in0; rex,aGeFhEiCoBrAu9v show;m2Hn5rntIto15;agedy,ibe,o43;p5rq3D;c,de,er,m9;etE;ere,i8;am,mp38;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n26st4O;ab2O;bAnri19per bowl,r9;f1roga2;st3Ctot0;aCepBipe3PrAudent9;! lo1J;ang1i8;fa1Emo1E;ff1t2Z;loi40me15;elet12i9;er,ll,rm3K;ack,or47;ab0Tcurity gu2C;e4ho9;l2Yol;la31;av0VeChetor5iAo9;de4om;te,v9;erb0M;bCcBf9publ5r0Nspi2;er9orm1;e4r0;it0ord label;a2u40;estion mark,ot27;aMeKhJiHlFort0rAu9yram1B;ddi8ppy,rpo0I;eCie3Go9;bl3Ts9;pe6t9;a2itu2;diction,mi0Droga7ss relea0D;a9ebisci2;q26te,y1;cn5e9g;!r;armaci37otocoH;dest0ncil,r9t0;cen3Fsp3G;nAr2Qte9;!nt;el2Qop3;bj3CcApia2rde0thers,ve9wn1;n,rview;cu9e0E;pi1;aAit23ot9umb1;a24hi8;n28rra7;aFeEiDoAu9é0F;m0Rr0;mAnopo3pPrni8sq1Ot9u12;h1i34;!my;li0Vn08;d5nu,t0;mm0nd11te9yf3;ri0;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,ph9;one;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a07b01cYdRePfOgMhJjFkClBm9olive,p6r3s2trini00v0wang;an,enus,iol0;a,et;ky,on5umm03;ay,e1o0uby;b9d,se;ed,x;atQe0ol;aIn0;ny;a0eloTiles;x,ya;aBeo,iG;elv1i0;ng,tM;in;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:26;1:25;2:1W;3:1I;4:1Y;a24b1Nc1Bd15en13f0Xg0Vh0Si0Qjog1Zk0Ol0Km0Hn0Fo0Bp04ques07rVsFtAunder9volunt14w5yCzo2;a7ed1Ri3or6r5;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e8hin4i7ra5y1J;c4di0i2v5;el15;mi0p1G;a1Xs1;ai12cHeGhEin1OkatClYmo4nowBpeAt8u6w5;ea3im1T;f01r5;fi0vi0I;a1Kretc1Iu5;d1AfI;l0Wn1B;b6i0;eb5i0;oar18;ip14o5;rte2u1;a1r09t1;h6o3re5;a1Ge2;edu0Noo0N;aCe8i11o6u5;li0n2;o5wi0;fi0;a7c6hear1Cnde3por1struct5;r1Au3;or0Vyc0G;di0so2;p0Qti0;aAeacek9la8o6r5ublis0X;a0Peten0Rin1oces16;iso2si5;tio2;n2yi0;ee0K;cka0Tin1rt0K;f7pe6rgani5vula1;si0zi0;ni0ra1;fe3;e5ur0W;gotia1twor4;a6e5i2onito3;e1ssa0L;nufactu3rke1;a7ea6i5od0Jyi0;cen0Qf1s1;r2si0;n09ug0E;i5n0J;c4lS;ci0magi2n5ro2;nova1terac1;andPea1i6o5un1;l03wO;ki0ri0;athe3rie5ui01;vi0;ar0CenHi7l6or5ros1unZ;ecas1mat1;ir1ooX;l6n5;anDdi0;i0li0;di0gin5;ee3;a8eba1irec1o7r5umO;awi0es05i5;n4vi0;ub1wnloaO;n5ti0;ci0;aEelebra1hClAo7r5ur6;aw5osZ;li0;a6di0lo3mplai2n5o4pi0ve3;duc1sul1;cLti0;apCea3imHo5ubH;ni0tJ;a5ee3;n1t1;m8s1te3;ri0;aIeFitDlCoAr8u5;il8ll6r5;pi0;yi0;an5;di0;a1m5o4;bi0;esGoa1;c5i0;hi0;gin2lon5t1;gi0;ni0;bys6c4ki0;ki0;it1;c8dverti7gi0rg6ssu5;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦0:0X;a0Sb0Qc0Cd0Bex0Af07g04he02in0Ljoule0kVlSmInHoGpDquart0square 9t5volts,w4y2ze3°1µs;c,f,n;a0Dd0Jears old,o1;tt07;att0b;able3e2on1;!ne0;a1r03;spoY;c0Ad09f3i07kilo0Bm1ya06;e0Eil1;e0li09;eet0o05;ascals,e2i1ou0I;c0Fnt0;rcent,tV;hms,uS;an0CewtP;/s,e6i1m²,²,³;/h,cro4l1;e1li03;! pFs 1²;anFpE;g02s07;gMter1;! 2s1;! 1;per second;it2u1;men0x;er0re0;elvins,ilo2m1nM;/h,²;byUgSmeter1;! p2s1;! p1;er1; hour;ct1rtz0;aTogM;all2ig6ra1;in0m0;on0;a2emtMluid ou1tE;nce0;hrenheit,rad0;abyH;eciCmA;arat0eAm9oulomb0u1;bic 1p0;c5d4fo3i2meAya1;rd0;nch0;ot0;eci2;enti1;me4;²,³;lsius,nti1;g2li1me1;ter0;ram0;bl,y1;te0;c4tt1;os1;eco1;nd0;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Dde0Ce07f00gZhomel09iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b01nt;ndergr1pstairs;adua0Jou1;nd;a3e1oken;en,r1;min0ror0B;boo,n;e6ist00o4qua3ta2u1;bordina0Cper6;bRndard;re,t;cial05l1;e,v0F;cret,n1ri0;ior;e1outiIubbish;ar,laVnt0p1;resentaUublican;ati09eriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aFe4in3o1;biEdernUr1;al,t0;iature,or;di1tr03;an,um;attGiber0;stice,veni8;de0mpressionNn1;cumbXdividu0nocX;enious,old;a5e2i1luid;ne;llow,m1;a1inH;le;t,vo1;riIuriI;l3x1;c1ecu7pL;ess;d1iE;er;mographKriva3;hiCo1rude;m3n2opera1;tive;cre8stituFtemporary;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem5d3l2nim0rab;al;ert;olesc1ult;ent;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3C;1:3G;2:3R;3:2E;a3Vb3Dc31d2Re2Kf28g1Wh1Mi1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3B;a8e6hi1Hi4ry;ck0Dde,l4n2ry,se;d,y;a4i3U;k,ry;nti35ry;a4erda1ulgar;gue,in,st;g0pcomi32;a7en2Uhi6i5ough,r4;anqu29en2ue;dy,g37me0ny,r03;ck,rs25;ll,me,rt,wd3J;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Xrre25;sta23t3;a8e7iff,r5u4;pUr2;a4ict,o2Q;ig2Xn0N;a2ep,rn;le,rk;e1Pi2Xright0;ci1Wft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Om4;!y;ek,nd2U;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Jxy;ce,y;d,fe,int0l1Fv0V;a9e7i6o4ude;mantic,o17sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai1i4;ck,et;hoBi1DlAo9r6u4;ny,r4;e,p3;egna1ic5o4;fouSud;ey,k0;liXor;ain,easa1;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Wsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Zte;ist,o2;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Hn5o13u4ve0w0Xy0L;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1C;cy,ll,n4;s7t4;e4ima5;llege1rmedia4;te;ecu4ta1;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita1;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a1d2;a4o4;st0;t3uiS;u2y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou2;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia1;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o2;ck,nd;g,tt4;er;d,ld,w2;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b1chu2drew,grant,ja2ma0ollie,pat,rob,sue,wade;ck,rk;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ea="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xa=Ea.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ia=function(e){if(void 0!==xa[e])return xa[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Ga=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Ca(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Da(Na[e]);za.test(e)?Object.keys(t).forEach(t=>{if(Fa[t]=e,"Noun|Verb"===e){let e=Va(t,Sa);Fa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{$a[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","$a[e]="Emoticon"),delete $a[""],delete $a.null,delete $a[" "];const Ha="Adjective";var Ma={beforeTags:{Determiner:Ha,Possessive:Ha},afterTags:{Adjective:Ha},beforeWords:{seem:Ha,seemed:Ha,seems:Ha,feel:Ha,feels:Ha,felt:Ha,appear:Ha,appears:Ha,appeared:Ha,also:Ha,over:Ha,under:Ha,too:Ha,it:Ha,but:Ha,still:Ha,really:Ha,quite:Ha,well:Ha,very:Ha,deeply:Ha,profoundly:Ha,extremely:Ha,so:Ha,badly:Ha,mostly:Ha,totally:Ha,awfully:Ha,rather:Ha,nothing:Ha,something:Ha,anything:Ha},afterWords:{too:Ha,also:Ha,or:Ha}};const La="Gerund";var Wa={beforeTags:{Adverb:La,Preposition:La,Conjunction:La},afterTags:{Adverb:La,Possessive:La,Person:La,Pronoun:La,Determiner:La,Copula:La,Preposition:La,Conjunction:La,Comparative:La},beforeWords:{been:La,keep:La,continue:La,stop:La,am:La,be:La,me:La,began:La,start:La,starts:La,started:La,stops:La,stopped:La,help:La,helps:La,avoid:La,avoids:La,love:La,loves:La,loved:La,hate:La,hates:La,hated:La},afterWords:{you:La,me:La,her:La,him:La,them:La,their:La,it:La,this:La,there:La,on:La,about:La,for:La}};var Ja={beforeTags:Object.assign({},Ma.beforeTags,Wa.beforeTags,{PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ma.afterTags,Wa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ma.beforeWords,Wa.beforeWords,{is:"Adjective",was:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,Wa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const qa="Singular";var Ka={beforeTags:{Determiner:qa,Possessive:qa,Acronym:qa,Noun:qa,Adjective:qa,PresentTense:qa,Gerund:qa,PastTense:qa,Infinitive:qa,Date:qa},afterTags:{Value:qa,Modal:qa,Copula:qa,PresentTense:qa,PastTense:qa,Demonym:qa},beforeWords:{the:qa,with:qa,without:qa,of:qa,for:qa,any:qa,all:qa,on:qa,cut:qa,cuts:qa,save:qa,saved:qa,saves:qa,make:qa,makes:qa,made:qa,minus:qa,plus:qa,than:qa,another:qa,versus:qa,neither:qa,favorite:qa,best:qa,daily:qa,weekly:qa,linear:qa,binary:qa,mobile:qa,lexical:qa,technical:qa,computer:qa,scientific:qa,formal:qa},afterWords:{of:qa,system:qa,aid:qa,method:qa,utility:qa,tool:qa,reform:qa,therapy:qa,philosophy:qa,room:qa,authority:qa,says:qa,said:qa,wants:qa,wanted:qa}};const Ua={beforeTags:{Determiner:void 0}};var Ra={beforeTags:Object.assign({},Ma.beforeTags,Ka.beforeTags,Ua.beforeTags),afterTags:Object.assign({},Ma.afterTags,Ka.afterTags),beforeWords:Object.assign({},Ma.beforeWords,Ka.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,Ka.afterWords)};const _a={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Qa={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Za={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Xa={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ya={beforeTags:Object.assign({},Ma.beforeTags,_a),afterTags:Object.assign({},Ma.afterTags,Qa),beforeWords:Object.assign({},Ma.beforeWords,Za),afterWords:Object.assign({},Ma.afterWords,Xa)};const eo="Infinitive";var to={beforeTags:{Modal:eo,Adverb:eo,Negative:eo,Plural:eo},afterTags:{Determiner:eo,Adverb:eo,Possessive:eo,Preposition:eo},beforeWords:{i:eo,we:eo,you:eo,they:eo,to:eo,please:eo,will:eo,have:eo,had:eo,would:eo,could:eo,should:eo,do:eo,did:eo,does:eo,can:eo,must:eo,us:eo,me:eo,he:eo,she:eo,it:eo,being:eo},afterWords:{the:eo,me:eo,you:eo,him:eo,her:eo,them:eo,it:eo,a:eo,an:eo,up:eo,down:eo,by:eo,out:eo,off:eo,when:eo,all:eo,to:eo,because:eo,although:eo,before:eo,how:eo,otherwise:eo,though:eo,yet:eo}};const no={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ro={beforeTags:Object.assign({},Ma.beforeTags,to.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ma.afterTags,to.afterTags,no.afterTags),beforeWords:Object.assign({},Ma.beforeWords,to.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ma.afterWords,to.afterWords,{to:void 0})};const ao={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},oo={},io={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},so={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var lo={beforeTags:Object.assign({},Wa.beforeTags,Ka.beforeTags,ao),afterTags:Object.assign({},Wa.afterTags,Ka.afterTags,oo),beforeWords:Object.assign({},Wa.beforeWords,Ka.beforeWords,io),afterWords:Object.assign({},Wa.afterWords,Ka.afterWords,so)};var uo={beforeTags:Object.assign({},to.beforeTags,Ka.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},to.afterTags,Ka.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},to.beforeWords,Ka.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},to.afterWords,Ka.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const co="Person";var ho={beforeTags:{Honorific:co,Person:co,Preposition:co},afterTags:{Person:co,ProperNoun:co,Verb:co},ownTags:{ProperNoun:co},beforeWords:{hi:co,hey:co,yo:co,dear:co,hello:co},afterWords:{said:co,says:co,told:co,tells:co,feels:co,felt:co,seems:co,thinks:co,thought:co,spends:co,spendt:co,plays:co,played:co,sing:co,sang:co,learn:co,learned:co,wants:co,wanted:co}};const mo="Month",po={beforeTags:{Date:mo,Value:mo},afterTags:{Date:mo,Value:mo},beforeWords:{by:mo,in:mo,on:mo,during:mo,after:mo,before:mo,between:mo,until:mo,til:mo,sometime:mo,of:mo,this:mo,next:mo,last:mo,previous:mo,following:mo},afterWords:{sometime:mo,in:mo,of:mo,until:mo,the:mo}};var go={beforeTags:Object.assign({},ho.beforeTags,po.beforeTags),afterTags:Object.assign({},ho.afterTags,po.afterTags),beforeWords:Object.assign({},ho.beforeWords,po.beforeWords),afterWords:Object.assign({},ho.afterWords,po.afterWords)};const fo={Place:"Place"},vo={Place:"Place",Abbreviation:"Place"},bo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},yo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};const wo={"Adj|Gerund":Ja,"Adj|Noun":Ra,"Adj|Past":Ya,"Adj|Present":ro,"Noun|Verb":uo,"Noun|Gerund":lo,"Person|Noun":{beforeTags:Object.assign({},Ka.beforeTags,ho.beforeTags),afterTags:Object.assign({},Ka.afterTags,ho.afterTags),beforeWords:Object.assign({},Ka.beforeWords,ho.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ka.afterWords,ho.afterWords)},"Person|Date":go,"Person|Verb":{beforeTags:Object.assign({},ho.beforeTags,to.beforeTags),afterTags:Object.assign({},ho.afterTags,to.afterTags),beforeWords:Object.assign({},ho.beforeWords,to.beforeWords),afterWords:Object.assign({},ho.afterWords,to.afterWords)},"Person|Place":{beforeTags:Object.assign({},fo,ho.beforeTags),afterTags:Object.assign({},vo,ho.afterTags),beforeWords:Object.assign({},bo,ho.beforeWords),afterWords:Object.assign({},yo,ho.afterWords)}},ko=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};wo["Plural|Verb"]={beforeWords:ko(wo["Noun|Verb"].beforeWords,{}),afterWords:ko(wo["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:ko(wo["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:ko(wo["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var Po=wo;const Ao="Adjective",jo="Infinitive",No="PresentTense",Eo="Singular",xo="PastTense",Io="Adverb",Go="Plural",To="Verb",Co="LastName",Do="Participle";var Oo=[null,null,{ea:Eo,ia:"Noun",ic:Ao,ly:Io,"'n":To,"'t":To},{oed:xo,ued:xo,xed:xo," so":Io,"'ll":"Modal","'re":"Copula",azy:Ao,eer:"Noun",end:To,ped:xo,ffy:Ao,ify:jo,ing:"Gerund",ize:jo,ibe:jo,lar:Ao,mum:Ao,nes:No,nny:Ao,ous:Ao,que:Ao,rol:Eo,sis:Eo,ogy:Eo,oid:Eo,ian:Eo,zes:No,eld:xo,ken:Do,ven:Do,ten:Do,ect:jo,ict:jo,ign:jo,ful:Ao,bal:Ao},{amed:xo,aped:xo,ched:xo,lked:xo,rked:xo,reed:xo,nded:xo,mned:Ao,cted:xo,dged:xo,ield:Eo,akis:Co,cede:jo,chuk:Co,czyk:Co,ects:No,ends:To,enko:Co,ette:Eo,wner:Eo,fies:No,fore:Io,gate:jo,gone:Ao,ices:Go,ints:Go,ruct:jo,ines:Go,ions:Go,less:Ao,llen:Ao,made:Ao,nsen:Co,oses:No,ould:"Modal",some:Ao,sson:Co,tion:Eo,tage:"Noun",ique:Eo,tive:Ao,tors:"Noun",vice:Eo,lier:Eo,fier:Eo,wned:xo,gent:Eo,tist:Eo,pist:Eo,rist:Eo,mist:Eo,yist:Eo,vist:Eo,lite:Eo,site:Eo,rite:Eo,mite:Eo,bite:Eo,mate:Eo,date:Eo,ndal:Eo,vent:Eo,uist:Eo,gist:Eo,note:Eo,cide:Eo,wide:Ao,vide:jo,ract:jo,duce:jo,pose:jo,eive:jo,lyze:jo,lyse:jo,iant:Ao,nary:Ao},{elist:Eo,holic:Eo,phite:Eo,tized:xo,urned:xo,eased:xo,ances:Go,bound:Ao,ettes:Go,fully:Io,ishes:No,ities:Go,marek:Co,nssen:Co,ology:"Noun",osome:Eo,tment:Eo,ports:Go,rough:Ao,tches:No,tieth:"Ordinal",tures:Go,wards:Io,where:Io,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Eo,scent:Eo,onist:Eo,anist:Eo,alist:Eo,olist:Eo,icist:Eo,ounce:jo,iable:Ao,borne:Ao,gnant:Ao,inant:Ao,igent:Ao,atory:Ao,rient:Eo,dient:Eo},{auskas:Co,parent:Eo,cedent:Eo,ionary:Eo,cklist:Eo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Co,borough:"Place",sdottir:Co}];const Bo="Adjective";var Vo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Bo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Bo,tele:"Noun","pro-":Bo,"mis-":"Verb","dis-":"Verb","pre-":Bo},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Bo,radio:"Noun",tetra:"Noun","omni-":Bo,"post-":Bo},{pseudo:Bo,"extra-":Bo,"hyper-":Bo,"inter-":Bo,"intra-":Bo,"deca-":Bo},{electro:"Noun"}];const zo="Adjective",$o="Infinitive",Fo="PresentTense",So="Singular",Ho="PastTense",Mo="Expression",Lo="LastName";var Wo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Lo],[/.[^aeiou]ica$/,So,"harmonica"],[/^([hyj]a+)+$/,Mo,"haha"]],c:[[/.[^aeiou]ic$/,zo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ho,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ho,"rammed"],[/.[aeiou][sg]hed$/,Ho,"gushed"],[/.[aeiou]red$/,Ho,"hired"],[/.[aeiou]r?ried$/,Ho,"hurried"],[/[^aeiou]ard$/,So,"steward"],[/[aeiou][^aeiou]id$/,zo,""],[/.[vrl]id$/,zo,"livid"],[/..led$/,Ho,"hurled"],[/.[iao]sed$/,Ho,""],[/[aeiou]n?[cs]ed$/,Ho,""],[/[aeiou][rl]?[mnf]ed$/,Ho,""],[/[aeiou][ns]?c?ked$/,Ho,"bunked"],[/[aeiou]gned$/,Ho],[/[aeiou][nl]?ged$/,Ho],[/.[tdbwxyz]ed$/,Ho],[/[^aeiou][aeiou][tvx]ed$/,Ho],[/.[cdflmnprstv]ied$/,Ho,"emptied"]],e:[[/.[lnr]ize$/,$o,"antagonize"],[/.[^aeiou]ise$/,$o,"antagonise"],[/.[aeiou]te$/,$o,"bite"],[/.[^aeiou][ai]ble$/,zo,"fixable"],[/.[^aeiou]eable$/,zo,"maleable"],[/.[ts]ive$/,zo,"festive"],[/[a-z]-like$/,zo,"woman-like"]],h:[[/.[^aeiouf]ish$/,zo,"cornish"],[/.v[iy]ch$/,Lo,"..ovich"],[/^ug?h+$/,Mo,"ughh"],[/^uh[ -]?oh$/,Mo,"uhoh"],[/[a-z]-ish$/,zo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Lo,"polish-male"]],k:[[/^(k){2}$/,Mo,"kkkk"]],l:[[/.[gl]ial$/,zo,"familial"],[/.[^aeiou]ful$/,zo,"fitful"],[/.[nrtumcd]al$/,zo,"natal"],[/.[^aeiou][ei]al$/,zo,"familial"]],m:[[/.[^aeiou]ium$/,So,"magnesium"],[/[^aeiou]ism$/,So,"schism"],[/^[hu]m+$/,Mo,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,zo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Mo,"noooo"],[/^(yo)+$/,Mo,"yoo"],[/^wo{2,}[pt]?$/,Mo,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,So],[/[^i]fer$/,$o],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,zo],[/[aeiou].*ist$/,zo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Fo],[/.[rln]ates$/,Fo],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,So],[/.[aeiou]sks$/,Fo],[/.[aeiou]kes$/,Fo],[/[aeiou][^aeiou]is$/,So],[/[a-z]'s$/,"Noun"],[/^yes+$/,Mo]],v:[[/.[^aeiou][ai][kln]ov$/,Lo]],y:[[/.[cts]hy$/,zo],[/.[st]ty$/,zo],[/.[tnl]ary$/,zo],[/.[oe]ry$/,So],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,zo],[/...lly$/,"Adverb"],[/.[gk]y$/,zo],[/[bszmp]{2}y$/,zo],[/.[ai]my$/,zo],[/[ea]{2}zy$/,zo],[/.[^aeiou]ity$/,So]]};const Jo="Verb",qo="Noun";var Ko={leftTags:[["Adjective",qo],["Possessive",qo],["Determiner",qo],["Adverb",Jo],["Pronoun",Jo],["Value",qo],["Ordinal",qo],["Modal",Jo],["Superlative",qo],["Demonym",qo],["Honorific","Person"]],leftWords:[["i",Jo],["first",qo],["it",Jo],["there",Jo],["not",Jo],["because",qo],["if",qo],["but",qo],["who",Jo],["this",qo],["his",qo],["when",qo],["you",Jo],["very","Adjective"],["old",qo],["never",Jo],["before",qo],["a","Singular"],["the",qo],["been",Jo]],rightTags:[["Copula",qo],["PastTense",qo],["Conjunction",qo],["Modal",qo]],rightWords:[["there",Jo],["me",Jo],["man","Adjective"],["only",Jo],["him",Jo],["it",Jo],["were",qo],["took",qo],["himself",Jo],["went",qo],["who",qo],["jr","Person"]]},Uo={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ro={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},_o={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Qo={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Zo={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Xo=/^.([0-9]+)/;var Yo=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Xo);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Xo,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ti=/^([0-9]+)/,ni=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ti);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ti,"")]}(n[0],n[1])})};var ri=function(e={}){return(e=Object.assign({},e)).rules=ni(e.rules),e.rules=ei(e.rules),e.rev&&(e.rev=ni(e.rev),e.rev=ei(e.rev)),e.exceptions=ni(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var ai=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const oi=ri({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med,nearth|6s",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,nearths|6,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ii=ri(Qo),si=ri(Ro),li=ri(_o),ui=ai(oi),ci=ai(ii),hi=ai(si),di=ai(li),mi=ri(Uo),pi=ri(Zo);var gi={fromPast:oi,fromPresent:ii,fromGerund:si,fromParticiple:li,toPast:ui,toPresent:ci,toGerund:hi,toParticiple:di,toComparative:mi,toSuperlative:pi,fromComparative:ai(mi),fromSuperlative:ai(pi)},fi=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),vi=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var bi=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(yi[t].forEach(n=>e[n]=t),e),{});var wi=yi;var ki=function(e){let t=e.substring(e.length-3);if(!0===wi.hasOwnProperty(t))return wi[t];let n=e.substring(e.length-2);return!0===wi.hasOwnProperty(n)?wi[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Pi={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ai=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ki(e)),Pi.hasOwnProperty(e))c=Pi[e];else if("Participle"===n)c=Yo(l,i);else if("PastTense"===n)c=Yo(l,r);else if("PresentTense"===n)c=Yo(l,a);else{if("Gerund"!==n)return e;c=Yo(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ji=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Yo(i,n),PresentTense:Yo(i,r),Gerund:Yo(i,a),FutureTense:"will "+e},u=Yo(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var Ni=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ei="ically",xi=new Set(["analyt"+Ei,"chem"+Ei,"class"+Ei,"clin"+Ei,"crit"+Ei,"ecolog"+Ei,"electr"+Ei,"empir"+Ei,"frant"+Ei,"grammat"+Ei,"ident"+Ei,"ideolog"+Ei,"log"+Ei,"mag"+Ei,"mathemat"+Ei,"mechan"+Ei,"med"+Ei,"method"+Ei,"method"+Ei,"mus"+Ei,"phys"+Ei,"phys"+Ei,"polit"+Ei,"pract"+Ei,"rad"+Ei,"satir"+Ei,"statist"+Ei,"techn"+Ei,"technolog"+Ei,"theoret"+Ei,"typ"+Ei,"vert"+Ei,"whims"+Ei]),Ii=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Gi=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ti={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ci=function(e){return e.endsWith("ly")?xi.has(e)?e.replace(/ically/,"ical"):Gi.has(e)?null:Ti.hasOwnProperty(e)?Ti[e]:Ni(e,Ii)||e:null};const Di=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Oi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Bi=function(e){if(Oi.hasOwnProperty(e))return Oi[e];let t=Ni(e,Di);return t||e+"ly"};const Vi=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],zi={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},$i=new Set(["terrible","annoying"]);const Fi=function(e,t){const n=t.two.models.toSuperlative;return Yo(e,n)},Si=function(e,t){const n=t.two.models.toComparative;return Yo(e,n)};var Hi={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Mi={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){let n=e[t];const r=new Set(["may","april","august","jan"]);return!(!n||"like"===n.normal||r.has(n.normal)||n.tags.has("Place")||n.tags.has("Date")||e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=t.toLowerCase().trim()).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Hi.hasOwnProperty(i)&&Hi[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Va,nounToSingular:bi,verbToInfinitive:Ai,getTense:ki,verbConjugate:ji,adjToSuperlative:Fi,adjToComparative:Si,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Yo(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Yo(e,n)},advToAdjective:Ci,adjToAdverb:Bi,adjToNoun:function(e){if(zi.hasOwnProperty(e))return zi[e];if($i.has(e))return null;let t=Ni(e,Vi);return t||e+"ness"}}}};var Li=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Wi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Ji=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Wi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Wi(r,"Infinitive","Verb"),Object.assign(s,l),l=Wi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Wi(o,"Adjective","Superlative"),Object.assign(s,l),l=Wi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let qi={two:{models:gi}};const Ki={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural"},Ui=function(e,t){const n={model:t,methods:Mi};let{lex:r,_multi:a}=Mi.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Ri=function(e,t,n){let r=ji(e,qi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},_i=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=Ki[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ri(a,r,!1),"Adj|Present"===o&&(Ri(a,r,!0),function(e,t,n){let r=Fi(e,n);t[r]=t[r]||"Superlative";let a=Si(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ai(a,qi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ai(a,qi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=Ui(n,t)};let Qi={one:{_multiCache:{},lexicon:$a},two:{irregularPlurals:ja,models:gi,suffixPatterns:Oo,prefixPatterns:Vo,endsWith:Wo,neighbours:Ko,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Fa,clues:Po,uncountable:{},orgWords:fi}};Qi=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=Ui(e.one.lexicon,e)).one.lexicon,e),e=_i(e.two.switches,e),e=Ji(e),e=Li(e)}(Qi);var Zi=Qi;const Xi=/^(under|over|mis|re|un|dis|semi)-?/;var Yi=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(Xi.test(a.normal)){let e=a.normal.replace(Xi,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var es=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(25)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const ts={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"]},ns=new Set(["formulas","koalas","israelis","menus"]),rs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var as=function(e){if(!e||e.length<=3)return!1;if(ns.has(e))return!0;let t=e[e.length-1];return ts.hasOwnProperty(t)?ts[t].find(t=>e.endsWith(t)):"s"===t&&!rs.find(t=>e.endsWith(t))};const os=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var is=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(as(e.normal)?es(e,"Plural","3-plural-guess"):es(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ki(e.normal);t&&es(e,t,"3-verb-tense-guess")}}(r)};const ss=/^\p{Lu}[\p{Ll}'’]/u,ls=/[0-9]/,us=["Date","Month","WeekDay","Unit"],cs=/^[IVXLCDM]{2,}$/,hs=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ds={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ms=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ss.test(o)&&!1===ls.test(o)?us.find(e=>r.tags.has(e))?null:(is(e,t,n),r.tags.has("Noun")||r.tags.clear(),es(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&cs.test(o)&&hs.test(o)&&!ds[r.normal]?(es(r,"RomanNumeral","2-xvii"),!0):null};const ps=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var gs=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ps(r.normal,n.two.suffixPatterns);if(null!==e)return es(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ps(r.implicit,n.two.suffixPatterns),null!==e))return es(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const fs=/['‘’‛‵′`´]/,vs=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return es(r,e,"2-prefix"),r.confidence=.5,!0}return null};const ws=new Set(["in","on","by","for","during","within","before","after","of","this","next","last","may"]),ks=function(e){return!!e&&(!!ws.has(e.normal)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")))},Ps=function(e){return!!e&&!!e.tags.has("Ordinal")};var As=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){if(ks(e[t-1])||ks(e[t+1]))return es(n,"Year","2-tagYear");if(r>1950&&r<2025&&(Ps(e[t-1])||Ps(e[t+1])))return es(n,"Year","2-tagYear-close")}}return null};const js=/^[A-Z]('s|,)?$/,Ns=/^[A-Z-]+$/,Es=/([A-Z]\.)+[A-Z]?,?$/,xs=/[A-Z]{2,}('s|,)?$/,Is=/([a-z]\.)+[a-z]\.?$/,Gs={I:!0,A:!0};var Ts=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ns.test(n)||n.length>5||Gs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Es.test(n)&&!0!==Is.test(n)&&!0!==js.test(n)&&!0!==xs.test(n))}(r,n)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gs.hasOwnProperty(r.text)&&js.test(r.text)?(r.tags.clear(),es(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(es(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ns.test(r.text)&&r.text.length<=6?(es(r,"Acronym","3-titlecase-acronym"),!0):null};const Cs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ds=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Os=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Cs(e[t-1],a),l=l||Cs(e[t+1],o),l=l||Ds(e[t-1],r),l=l||Ds(e[t+1],i),l)return es(s,l,"3-[neighbour]"),is(e,t,n),e[t].confidence=.2,!0}return null};const Bs=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Vs=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Bs(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Bs(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var zs=function(e,t,n){0===e[t].tags.size&&(es(e[t],"Noun","3-[fallback]"),is(e,t,n),e[t].confidence=.1)};const $s=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Fs=(e,t,n)=>0!==t||e[1]?null:n;var Ss={"Adj|Gerund":(e,t)=>$s(e,t),"Adj|Noun":(e,t)=>$s(e,t),"Adj|Past":(e,t)=>$s(e,t),"Adj|Present":(e,t)=>$s(e,t),"Noun|Gerund":(e,t)=>$s(e,t),"Noun|Verb":(e,t)=>$s(e,t)||Fs(e,t,"Infinitive"),"Plural|Verb":(e,t)=>$s(e,t)||Fs(e,t,"PresentTense"),"Person|Noun":(e,t)=>$s(e,t),"Person|Verb":(e,t)=>0!==t&&$s(e,t)};const Hs="undefined"!=typeof process&&process.env?process.env:self.env||{},Ms=/^(under|over|mis|re|un|dis|semi)-?/,Ls=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&Hs.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ws=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&Hs.DEBUG_TAGS&&console.log(`\n  ↓ - '${e.normal}' (#${r}) `),r=t[r],r};const Js={tagSwitch:Yi,checkSuffix:gs,checkRegex:bs,checkCase:ms,checkPrefix:ys,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(es(o,"Verb","3-[prefix]"),es(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(es(o,"Adjective","3-[prefix]"),es(o,"Prefix","3-[prefix]")))},checkYear:As},qs={checkAcronym:Ts,neighbours:Os,orgWords:Vs,nounFallback:zs,variables:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ms.test(l)&&!o[l]&&(l=l.replace(Ms,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Ls(e[t+1],n.afterWords);return o=o||Ls(e[t-1],n.beforeWords),o=o||Ws(e[t-1],n.beforeTags,a),o=o||Ws(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ss[o]&&(u=Ss[o](e,t)||u),u?(Hs.DEBUG_TAGS&&console.log(`\n  [variable] - '${l}' - (${o}) → #${u} \n`),a([s],u,n,null,"3-[variable]")):Hs.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : ${o} `)}}},Ks=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const _s={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var Qs={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const sl=/'/;var ll=function(e,t){let n=e[t].normal.split(sl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ul=/'/;var cl=function(e,t){let n=e[t].normal.split(ul)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var hl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const dl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ml={in:!0,by:!0,for:!0};var pl=(e,t)=>{let n=e[t];if(dl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ml[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const gl=/'/,fl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger","index"])},vl={d:(e,t)=>cl(e,t),t:(e,t)=>hl(e,t),s:(e,t,n)=>pl(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ll(e,t)},bl=function(e,t){return t.fromText(e.join(" ")).docs[0]};var yl={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===gl.test(r[o].normal)&&([,i]=r[o].normal.split(gl));let s=null;vl.hasOwnProperty(i)&&(s=vl[i](r,o,t)),s&&(s=bl(s,e),il(n,[a,o],s),fl(n[a],e))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=ol.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=al},hooks:["contractionTwo"]};const wl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const kl=["i","we","they"];let Pl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Determiner [%Adj|Noun%] #Noun",group:0,tag:"Adjective",ifNo:["#ProperNoun"],reason:"a-complex-relationship"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"(this|that|the) [#Gerund]",group:0,tag:"Noun",reason:"this-gerund"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",tag:"Place",reason:"east-sydney"},{match:wl+" #Person",tag:"Person",reason:"randy-smith"},{match:wl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${wl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"do (simply|just|really|not)+ [(#Adjective|like)]",group:0,tag:"Verb",reason:"do-simply-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"#PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"}],[{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:kl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:kl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:kl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Al=null;var jl={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["preTagger","contractionTwo","postTagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Al=Al||r.one.buildNet(n.two.matches,r);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Al),e.uncache(),e}},model:{two:{matches:Pl}},hooks:["postTagger"]};var Nl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var El=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?Nl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var xl={api:function(e){e.prototype.swap=El}};P.plugin(tl),P.plugin(yl),P.plugin(jl),P.plugin(xl);var Il=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Gl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Tl={this:"Noun",then:"Pivot"};var Cl=function(e){for(let t=0;t of #Determiner? #Noun",chunk:"Noun"},{match:"#Noun in #Determiner? #Noun",chunk:"Noun"},{match:"#Singular and #Determiner? #Singular",chunk:"Noun"}];let Bl=null;var Vl=function(e,t,n){const{methods:r}=n;Bl=Bl||r.one.buildNet(Ol,r),e.sweep(Bl)};const zl=function(e,t){if(("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_CHUNKS){let n=(e.normal+"'").padEnd(8);console.log(` | '${n} → ${t.padEnd(12)}  -fallback- `)}e.chunk=t};var $l=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Sl={compute:{chunks:function(e){const{document:t,world:n}=e;Cl(t),Dl(t),Vl(e,t,n),$l(t),Fl(t)}},api:function(e){e.prototype.chunks=Gl,e.prototype.clauses=Il},hooks:["chunks"]};const Hl=/'s$/;var Ml=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Hl,""),e.normal=e.normal.replace(Hl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Ll=/\(/,Wl=/\)/,Jl=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Ll,"");let t=e[e.length-1];t.post=t.post.replace(Wl,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Kl={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Ul=RegExp("("+Object.keys(Kl).join("|")+")"),Rl=RegExp("("+Object.values(Kl).join("|")+")"),_l=function(e,t){const n=e[t].pre.match(Ul)[0]||"";if(!n||!Kl[n])return null;const r=Kl[n];for(;t{e[0].pre=e[0].pre.replace(Ul,"");let t=e[e.length-1];t.post=t.post.replace(Rl,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Zl=/\./g;var Xl=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var Yl=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const eu=(e,t)=>"number"==typeof t?e.eq(t):e,tu=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var nu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=tu(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return eu(this,e).map(e=>{let n=tu(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=eu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=eu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=eu(t,e),new Adjectives(t.document,t.pointer)}};const ru=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},au=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let ou=[["emojis","emoji"],["atmentions","atMentions"]];var iu=function(e){au.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=ru,ou.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},su={api:function(e){iu(e),Ml(e),ql(e),Ql(e),nu(e),Yl(e),Xl(e)}};const lu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var uu={case:e=>{lu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;lu(e,e=>e.text=n(e.text,t))},whitespace:e=>{lu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{lu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const cu=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),hu="unicode|punctuation|whitespace|acronyms",du="|case|contractions|parentheses|quotations|emoji|honorifics",mu={light:cu(hu),medium:cu(hu+du),heavy:cu(hu+du+"|possessives|adverbs|nouns|verbs")};var pu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=mu[e]),Object.keys(e).forEach(t=>{uu.hasOwnProperty(t)&&uu[t](this,e[t])}),this}}};var gu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const fu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var vu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var yu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:bu(e,t),isSubordinate:vu(e),root:t}};const wu=e=>e.text(),ku=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Pu=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Au=function(e){let t=yu(e);return{root:wu(t.root),number:Pu(t.number),determiner:wu(t.determiner),adjectives:ku(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const ju={tags:!0};var Nu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,ju).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",ju),e};const Eu={tags:!0};var xu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Eu).tag("Singular","toPlural"),e};const Iu=(e,t)=>"number"==typeof t?e.eq(t):e;var Gu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Iu(this,e).map(yu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Au(t)),n},[])}isPlural(e){let t=this.filter(e=>yu(e).isPlural);return Iu(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=yu(e).adjectives;n.found&&(t=t.concat(n))}),Iu(t,e)}toPlural(e){return Iu(this,e).map(e=>Nu(e,yu(e)))}toSingular(e){return Iu(this,e).map(e=>{let t=yu(e);return xu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=gu(this);return t=Iu(t,e),new Nouns(this.document,t.pointer)}}};var Tu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Cu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Du.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Du.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Du.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Bu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const zu=/^([0-9,. ]+)\/([0-9,. ]+)$/,$u={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},Fu=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Su=function(e){if(!0===$u.hasOwnProperty(e))return $u[e];if("a"===e||"an"===e)return 1;const t=Cu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Mu(n),r=Mu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Mu(n);let a=r.text("reduced");return Hu.test(a)&&(a=a.replace(Hu,""),r=r.replaceWith(a)),r=Lu.hasOwnProperty(a)?Lu[a]:Mu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Mu(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var Ju=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const qu=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ku=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Uu=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ru=function(e){let t=[];if(e>100)return t;for(let n=0;n=qu[n][1]&&(e-=qu[n][1],t.push(qu[n][0]));return Ku[e]&&t.push(Ku[e]),t};var _u=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ju(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Uu.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ru(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ju(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var Qu=function(e){if(!e.numerator||!e.denominator)return"";return`${_u({num:e.numerator})} out of ${_u({num:e.denominator})}`};const Zu={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Xu=e=>{let t=_u(e).split(" "),n=t[t.length-1];return Zu.hasOwnProperty(n)?t[t.length-1]=Zu[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Yu=function(e){if(!e.numerator||!e.denominator)return"";let t=_u({num:e.numerator}),n=Xu({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const ec=(e,t)=>"number"==typeof t?e.eq(t):e;var tc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return ec(this,e).map(Wu)}get(e){return ec(this,e).map(Wu)}json(e){return ec(this,e).map(t=>{let n=t.toView().json(e)[0],r=Wu(t);return n.fraction=r,n},[])}toDecimal(e){return ec(this,e).forEach(e=>{let{decimal:t}=Wu(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return ec(this,e).forEach(e=>{let t=Wu(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return ec(this,e).forEach(e=>{let t=Wu(e),n=Yu(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return ec(this,e).forEach(e=>{let t=Wu(e),n=Qu(t);e.replaceWith(n)}),this}toPercentage(e){return ec(this,e).forEach(e=>{let{decimal:t}=Wu(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Tu(this);return t=ec(t,e),new Fractions(this.document,t.pointer)}};const nc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var rc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+nc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+nc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+nc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+nc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${nc})`),r=e.has("("+nc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+nc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+nc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var ac=function(e){if("string"==typeof e)return{num:Su(e)};let t=e.text("reduced"),n=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let r=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==r)return r.hasComma=n,r}let r=e.match("#Fraction{2,}$");r=!1===r.found?e.match("^#Fraction$"):r;let a=null;r.found&&(r.has("#Value and #Value #Fraction")&&(r=r.match("and #Value #Fraction")),a=Wu(r),t=(e=(e=e.not(r)).not("and$")).text("reduced"));let o=0;return t&&(o=Su(t)||0),a&&a.decimal&&(o+=a.decimal),{hasComma:n,prefix:"",num:o,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money")}};var oc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ju(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const ic={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},sc={"%":"percent",cm:"centimetres",km:"kilometres",ft:"feet","°":"degrees"};var lc=function(e){let t={suffix:"",prefix:e.prefix};return ic.hasOwnProperty(e.prefix)&&(t.suffix+=" "+ic[e.prefix],t.prefix=""),sc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+sc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var uc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=lc(e);return t+Xu(e)+n}if("Ordinal"===t)return e.prefix+oc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=lc(e);return t+_u(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const cc=(e,t)=>"number"==typeof t?e.eq(t):e;var hc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return cc(this,e).map(ac)}get(e){return cc(this,e).map(ac).map(e=>e.num)}json(e){return cc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ac(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=ac(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=uc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=ac(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=uc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=ac(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=uc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>ac(t).num===e)}greaterThan(e){return this.filter(t=>ac(t).num>e)}lessThan(e){return this.filter(t=>ac(t).num{let r=ac(n).num;return r>e&&r{let n=ac(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=uc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=ac(e).num);let t=this.map(t=>{let n=ac(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=uc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=rc(this);return t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=rc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=rc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=cc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var dc={api:function(e){tc(e),hc(e)}};const mc={people:!0,emails:!0,phoneNumbers:!0,places:!0},pc=function(e={}){return!1!==(e=Object.assign({},mc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var gc={api:function(e){e.prototype.redact=pc}};var fc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var vc=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var bc=function(e){let t=e.clauses(),n=vc(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var yc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var wc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var kc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var Pc=function(e){return e.verbs().toInfinitive(),e};const Ac=(e,t)=>"number"==typeof t?e.eq(t):e;var jc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=bc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Ac(this,e).map(e=>(bc(e),yc(e)))}toPresentTense(e){return Ac(this,e).map(e=>(bc(e),wc(e)))}toFutureTense(e){return Ac(this,e).map(e=>(bc(e),e=kc(e)))}toInfinitive(e){return Ac(this,e).map(e=>(bc(e),Pc(e)))}toNegative(e){return Ac(this,e).map(e=>(bc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Ac(this,e).map(e=>(bc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Ac(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Ac(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Ac(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=fc(this);return Ac(t,e)}};Object.assign(e.prototype,t)}};var Nc=function(e){return e.match("#Honorific+? #Person+")};var Ec=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const xc="male",Ic="female",Gc={mr:xc,mrs:Ic,miss:Ic,madam:Ic,king:xc,queen:Ic,duke:xc,duchess:Ic,baron:xc,baroness:Ic,count:xc,countess:Ic,prince:xc,princess:Ic,sire:xc,dame:Ic,lady:Ic,ayatullah:xc,congressman:xc,congresswoman:Ic,"first lady":Ic,mx:null};var Tc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Ic;if(n.has("#MaleName"))return xc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Gc.hasOwnProperty(e))return Gc[e];if(/^her /.test(e))return Ic;if(/^his /.test(e))return xc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return xc;if(n&&!t)return Ic}return null};const Cc=(e,t)=>"number"==typeof t?e.eq(t):e;var Dc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Cc(this,e).map(Ec)}json(e){return Cc(this,e).map(t=>{let n=t.toView().json(e)[0],r=Ec(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Tc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Nc(this);return t=Cc(t,e),new People(this.document,t.pointer)}};var Oc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var Bc=function(e){e.prototype.places=function(t){let n=Oc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Vc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const zc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var $c=function(e){e.prototype.topics=zc};var Fc={api:function(e){Dc(e),Bc(e),Vc(e),$c(e)}};var Sc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Hc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Mc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Lc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Wc=function(e){return e.match("#Negative")},Jc=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var qc=function(e){let t=e.clone();t.contractions().expand();const n=Hc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Mc(t,n),auxiliary:Lc(t,n),negative:Wc(t),phrasal:Jc(n)}};const Kc={tense:"PresentTense"},Uc={conditional:!0},Rc={tense:"FutureTense"},_c={progressive:!0},Qc={tense:"PastTense"},Zc={complete:!0,progressive:!1},Xc={passive:!0},Yc=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},eh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Kc]],["^wanted to #Infinitive$",[Qc]],["^will want to #Infinitive$",[Rc]]],"gerund-phrase":[["^#PastTense #Gerund$",[Qc]],["^#PresentTense #Gerund$",[Kc]],["^#Infinitive #Gerund$",[Kc]],["^will #Infinitive #Gerund$",[Rc]],["^have #PastTense #Gerund$",[Qc]],["^will have #PastTense #Gerund$",[Qc]]],"simple-present":[["^#PresentTense$",[Kc]],["^#Infinitive$",[Kc]]],"simple-past":[["^#PastTense$",[Qc]]],"simple-future":[["^will #Adverb? #Infinitive",[Rc]]],"present-progressive":[["^(is|are|am) #Gerund$",[Kc,_c]]],"past-progressive":[["^(was|were) #Gerund$",[Qc,_c]]],"future-progressive":[["^will be #Gerund$",[Rc,_c]]],"present-perfect":[["^(has|have) #PastTense$",[Qc,Zc]]],"past-perfect":[["^had #PastTense$",[Qc,Zc]],["^had #PastTense to #Infinitive",[Qc,Zc]]],"future-perfect":[["^will have #PastTense$",[Rc,Zc]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Qc,_c]]],"past-perfect-progressive":[["^had been #Gerund$",[Qc,_c]]],"future-perfect-progressive":[["^will have been #Gerund$",[Rc,_c]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Qc,Xc]],["^(was|were) being (#PastTense|#Participle)",[Qc,Xc]],["^(had|have) been (#PastTense|#Participle)",[Qc,Xc]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Kc,Xc]],["^(is|are|am) being (#PastTense|#Participle)",[Kc,Xc]],["^has been (#PastTense|#Participle)",[Kc,Xc]]],"passive-future":[["will have been (#PastTense|#Participle)",[Rc,Xc,Uc]],["will be being? (#PastTense|#Participle)",[Rc,Xc,Uc]]],"present-conditional":[["would be #PastTense",[Kc,Uc]]],"past-conditional":[["would have been #PastTense",[Qc,Uc]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Rc]]],"auxiliary-past":[["^did #Infinitive$",[Qc,{plural:!1}]],["^used to #Infinitive$",[Qc,Zc]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Kc,Zc,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Qc]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let th=[];Object.keys(eh).map(e=>{eh[e].forEach(t=>{th.push({name:e,match:t[0],data:Yc(t[1])})})});var nh=th;var rh=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),ah(r)&&(n.remove(r),r=n.last()),ah(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:oh(t,e)}};const sh=e=>e,lh=(e,t)=>{let n=ih(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},uh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=ih(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},ch=function(e,t){let n=ih(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},hh=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},dh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,hh(e)),r&&e.replace(t.root,r),e},mh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),ph=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},gh=function(e){return e&&e.isView?e.text("normal"):""},fh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,hh(e))};var vh=function(e){let t=qc(e);e=e.clone().toView();const n=rh(e,t);return{root:t.root.text(),preAdverbs:ph(t.adverbs.pre),postAdverbs:ph(t.adverbs.post),auxiliary:gh(t.auxiliary),negative:t.negative.found,prefix:gh(t.prefix),infinitive:fh(t.root),grammar:n}};const bh={tags:!0};var yh=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,hh(r)),i&&e.replace(r,i,bh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=ch(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const wh={tags:!0},kh={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,hh(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=ih(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,wh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=kh.simple(e,t),e=kh.noAux(e,t))},hasHad:e=>(e.replace("has","had",wh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),n(o,e.model).Participle}},Ph={infinitive:kh.simple,"simple-present":kh.simple,"simple-past":sh,"simple-future":kh.both,"present-progressive":e=>(e.replace("are","were",wh),e.replace("(is|are|am)","was",wh),e),"past-progressive":sh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":kh.hasHad,"past-perfect":sh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=mh(e)),e.remove("have"),e),"present-perfect-progressive":kh.hasHad,"past-perfect-progressive":sh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",wh),e),"passive-past":e=>(e.replace("have","had",wh),e),"passive-present":e=>(e.replace("(is|are)","was",wh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",wh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":sh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",wh),e),"auxiliary-past":sh,"auxiliary-present":e=>(e.replace("(do|does)","did",wh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",wh):(kh.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":sh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",wh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),kh.simple(e,t),mh(e),e)};var Ah=function(e,t,n){return Ph.hasOwnProperty(n)?((e=Ph[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const jh={tags:!0},Nh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),!1===lh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=uh(e)),o&&(e=e.replace(a,o,jh)).not("#Particle").tag("PresentTense"),e},Eh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,hh(a)),!1===lh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,jh)).not("#Particle").tag("Gerund"),e},xh={infinitive:Nh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Nh(e,t);{let t=ih(e).subject;if(lh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,jh)}return e},"simple-past":Nh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=uh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Nh(e,t),e=e.remove("will");return e},"present-progressive":sh,"past-progressive":(e,t)=>{let n=uh(e);return e.replace("(were|was)",n,jh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Nh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=ih(e).subject;return lh(e)||n.has("i")?((e=dh(e,t)).remove("had"),e):(e.replace("had","has",jh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":sh,"past-perfect-progressive":e=>e.replace("had","has",jh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=uh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,jh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":sh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":sh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Eh(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=ch(e);return e.replace(t.auxiliary,n),e}return Eh(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":sh,"modal-infinitive":sh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,hh(r)),a&&(e=e.replace(t.root,a,jh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Nh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return lh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,jh),e.remove("will"),e}};var Ih=function(e,t,n){return xh.hasOwnProperty(n)?((e=xh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Gh={tags:!0},Th=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,hh(r)),o&&(e=e.replace(r,o,Gh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Ch=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,hh(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Gh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Dh={infinitive:Th,"simple-present":Th,"simple-past":Th,"simple-future":sh,"present-progressive":Ch,"past-progressive":Ch,"future-progressive":sh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":sh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":sh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":sh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":sh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":sh,"modal-past":sh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Th(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Oh=function(e,t,n){return e.has("will")||e.has("going to")?e:Dh.hasOwnProperty(n)?((e=Dh[n](e,t)).fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e):e};const Bh={tags:!0};var Vh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,hh(a));let s=r(i,e.model).Gerund;return s&&(s=`${uh(e)} ${s}`,e.replace(a,s,Bh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["preTagger","postTagger","chunks"]),e};const zh={tags:!0},$h=function(e,t){let n=ch(e);return e.prepend(n+" not"),e},Fh=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Sh=e=>e.has("(is|was|am|are|will|were|be)"),Hh={"simple-present":(e,t)=>!0===Sh(e)?Fh(e):(e=dh(e,t),e=$h(e)),"simple-past":(e,t)=>!0===Sh(e)?Fh(e):((e=dh(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Sh(e)?Fh(e):$h(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",zh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=$h(e)).replace("wants","want",zh)};var Mh=function(e,t,n){if(e.has("#Negative"))return e;if(Hh.hasOwnProperty(n))return e=Hh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Sh(e)?Fh(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Lh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Lh(this,e).map(qc)}json(e,t){return Lh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=vh(t),n},[])}subjects(e){return Lh(this,e).map(e=>(qc(e),ih(e).subject))}adverbs(e){return Lh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Lh(this,e).filter(e=>!0!==ih(e).plural)}isPlural(e){return Lh(this,e).filter(e=>!0===ih(e).plural)}isImperative(e){return Lh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return yh(e,t,n.form)})}toPresentTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ih(e,t,n.form)})}toPastTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Ah(e,t,n.form)})}toFutureTense(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Oh(e,t,n.form)})}toGerund(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Vh(e,t,n.form)})}conjugate(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:yh(e.clone(),t,n.form).text("normal"),PastTense:Ah(e.clone(),t,n.form).text("normal"),PresentTense:Ih(e.clone(),t,n.form).text("normal"),FutureTense:Oh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Lh(this,e).map(e=>{let t=qc(e),n=rh(e,t);return Mh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Sc(this);return t=Lh(t,e),new Verbs(this.document,t.pointer)}}};P.plugin(Sl),P.plugin(su),P.plugin(pu),P.plugin(Gu),P.plugin(dc),P.plugin(gc),P.plugin(jc),P.plugin(Fc),P.plugin(Wh);let Jh=P.model();const qh=P.methods().one.tokenize.splitSentences;var Kh=function(e,t=1){let n=function(e,t=1){const n=Math.ceil(e.length/t),r=new Array(t);for(let a=0,o=0;aconsole.error(e)),a.push(l)}return a};let _h=a.cpus().length;var Qh={lib:{workerPool:function(e,t){let n=this;"string"==typeof t&&(t=n.parseMatch(t));let r=Rh(_h,t),a=Kh(e,_h),o=[],i=r.map(e=>!0);return r.forEach((e,t)=>{e.postMessage({type:"work",work:a[t]||[]})}),new Promise(e=>{r.forEach(t=>{t.on("message",t=>{if("match"===t.type&&t.match.forEach(e=>{o.push(e)}),"drained"===t.type){let a=t.status.workerIndex;if(i[a]=!1,i.every(e=>!1===e)){let t=n("");t.document=o,r.forEach(e=>e.terminate()),e(t)}}})})})}}};var Zh=function(e){let t=function(e){return Object.keys(e.index).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(e);return 0===t.length?this:(this._cache||this.cache(),this.filter(e=>t.some(t=>e._cache.has(t))))};var Xh={api:function(e){e.prototype.maybeMatch=Zh},lib:{lazyParse:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=r.maybeMatch(n);return a.found?(a.compute(["lexicon"]),a.match(t)):r.none()}}};export{s as keyPress,Xh as lazyParse,o as streamFile,Qh as workerPool}; +import*as e from"fs";import t from"path";import{fileURLToPath as n}from"url";import{Worker as r}from"worker_threads";import a from"os";var o={lib:{streamFile:function(t,n,r={}){const a=this;let o=a.world();const i=a.methods().one.tokenize.splitSentences,s=e.createReadStream(t,r);let l="",u=[];const c=e=>{let t=a(e),r=n(t);r&&r.found&&r.docs.forEach(e=>u.push(e))};return new Promise((e,t)=>{s.on("data",(function(e){l+=e;let[t,n]=function(e){let t=l.substring(e.length-300),n=i(t,o),r=n[n.length-1];return[e.substr(0,e.length-r.length),r]}(l);c(t),l=n})),s.on("end",(function(){c(l);let t=a("");t.document=u,e(t)})),s.on("error",(function(e){console.error(e.stack),t(e)}))})}}};let i={};var s={lib:{keyPress:function(e,t,n={}){const r=this;let a=(0,this.methods().one.tokenize.splitSentences)(e,this.world()),o=[];return a.forEach(e=>{if(!0===i.hasOwnProperty(e))o.push(i[e].data),i[e].used=!0;else{n.verbose&&console.log(`parsing: '${e}'\n`);let a=r(e,t).json(0);i[e]={data:a,used:!0},o.push(a)}}),Object.keys(i).forEach(e=>{!0!==i[e].used?delete i[e]:i[e].used=null}),n.verbose&&console.log(Object.keys(i).length+"' sentences in cache\n"),r(o)}}};var l={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};var u={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach(r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)}):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var c={forEach:function(e){return this.fullPointer.forEach((t,n)=>{let r=this.update([t]);e(r,n)}),this},map:function(e,t){let n=this.fullPointer.map((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a});if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach(e=>{r=r.concat(e.fullPointer)}),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter((t,n)=>{let r=this.update([t]);return e(r,n)}),this.update(t)},find:function(e){let t=this.fullPointer.find((t,n)=>{let r=this.update([t]);return e(r,n)});return this.update([t])},some:function(e){return this.fullPointer.some((t,n)=>{let r=this.update([t]);return e(r,n)})},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const h={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach(e=>{t[e]=this.update(this._groups[e])}),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map((e,t)=>[t])),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map((e,t)=>[t]);return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map(e=>[e[0]]);return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce((e,t)=>e+=t.filter(e=>""!==e.text).length,0)}};h.group=h.groups,h.fullSentence=h.fullSentences,h.sentence=h.fullSentences,h.lastTerm=h.lastTerms,h.firstTerm=h.firstTerms;var d=h;const m=Object.assign({},d,u,c);m.get=m.eq;var p=m;class View{constructor(e,t,n={}){[["document",e],["world",l],["_groups",n],["_cache",null],["viewType","View"]].forEach(e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})}),this.ptrs=t}get docs(){let e=this.document;return this.ptrs&&(e=l.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this;return(t||e.map((e,t)=>[t])).map(e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]})}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])}),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map(e=>e.map(e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,p);var g=View;const f=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};var v=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&function e(t,n){if(f(n))for(const r in n)f(n[r])?(t[r]||Object.assign(t,{[r]:{}}),e(t[r],n[r])):Object.assign(t,{[r]:n[r]});return t}(o,e.model),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach(t=>r[t]=e.lib[t]),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const b=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var y=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(b(e)){if(b(e[0])){return new t(e.map(e=>e.map(e=>({text:e,normal:e,pre:"",post:" ",tags:new Set}))))}return new t(function(e){return e.map(e=>e.terms.map(e=>(b(e.tags)&&(e.tags=new Set(e.tags)),e)))}(e))}return a};let w=Object.assign({},l);const k=function(e,t){t&&k.addWords(t);let n=y(e,g,w);return e&&n.compute(w.hooks),n};Object.defineProperty(k,"_world",{value:w,writable:!0}),k.tokenize=function(e,t){const{compute:n}=this._world;t&&k.addWords(t);let r=y(e,g,w);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},k.plugin=function(e){return v(e,this._world,g,this),this},k.extend=k.plugin,k.world=function(){return this._world},k.model=function(){return this._world.model},k.methods=function(){return this._world.methods},k.hooks=function(){return this._world.hooks},k.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},k.version="14.4.0";var P=k;const A={cache:function(){return this._cache=this.methods.one.cacheDoc(this.document),this},uncache:function(){return this._cache=null,this}};var j={api:function(e){Object.assign(e.prototype,A)},compute:{cache:function(e){e._cache=e.methods.one.cacheDoc(e.document)}},methods:{one:{cacheDoc:function(e){return e.map(e=>{let t=new Set;return e.forEach(e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach(e=>t.add(e));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),E=(e,t,n)=>{if(n.forEach(e=>e.dirty=!0),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},x=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},I=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},G=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?x(n):(x(n),x([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!N(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,e=>e.toUpperCase());let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||N(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,e=>e.toLowerCase())));var o}(e,o,n),E(e,o,n)};let T=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var C=function(e){let[t,n]=e.index||[0,0];T+=1,T=T>46655?0:T,t=t>46655?0:t,n=n>1294?0:n;let r=D(T.toString(36));r+=D(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const O=function(e){if(e.has("@hasContraction")){e.grow("@hasContraction").contractions().expand()}},B=e=>"[object Array]"===Object.prototype.toString.call(e),V=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]:B(e)?B(e[0])?e[0]:e:[]}(e,a);d=function(e){return e.map(e=>(e.id=C(e),e))}(d),n?(O(t.update([u]).firstTerm()),G(h,u,d,r)):(O(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)}),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e.replace(F,e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})}(e,r);let a=this.update(n);n=n.map(e=>e.slice(0,3));let o=(a.docs[0]||[]).map(e=>Array.from(e.tags));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach((e,t)=>{e.tagSafe(o[t])}),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase())),i},S.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var H=S;var M=function(e,t){t.forEach(t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))});for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const W={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=M(this.document,o);return a=function(e,t){return(e=e.map(e=>{let[n]=e;return t[n]?(t[n].forEach(t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)}),e):e})).forEach((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0)).map(e=>(e[3]=null,e[4]=null,e))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};W.delete=W.remove;var L=W;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach(n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e}),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach(n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e}),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")})}),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach(t=>{t.forEach(t=>{e.test(t.post)&&(t.post=" ")})}),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach(n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post}),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var q=J;var K={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach(e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1}),e.sort((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0}),e}};const U=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),_=new Set(["alpha","alphabetical"]);var Q={unique:function(){let e=new Set;return this.filter(t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)})},reverse:function(){let e=this.pointer||this.docs.map((e,t)=>[t]);return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map((e,t)=>[t]),a=t.map((e,t)=>({index:t,words:e.length,normal:e.map(e=>e.machine||e.normal||"").join(" "),pointer:r[t]}));return U.has(e)&&(e="sequential"),_.has(e)&&(e="alpha"),R.has(e)?(a=K.byFreq(a),this.update(a.map(e=>e.pointer))):"function"==typeof K[e]?(a=a.sort(K[e]),this.update(a.map(e=>e.pointer))):this}};const Z=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Y={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return E(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach(t=>{t[0]+=e.document.length}),e.document=Z(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=Z(this.document,e);return this.document=t,this.all()}var a;return this}};var X={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map(e=>e.slice(0,3)),this.ptrs=e),this}};const ee=Object.assign({},{toLowerCase:function(){return this.termList().forEach(e=>{e.text=e.text.toLowerCase()}),this},toUpperCase:function(){return this.termList().forEach(e=>{e.text=e.text.toUpperCase()}),this},toTitleCase:function(){return this.termList().forEach(e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())}),this},toCamelCase:function(){return this.docs.forEach(e=>{e.forEach((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,e=>e.toUpperCase())),n!==e.length-1&&(t.post="")})}),this}},$,H,L,q,Q,Y,X);var te={api:function(e){Object.assign(e.prototype,ee)},compute:{id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const ae=/'/,oe=new Set(["what","how","when","where","why"]),ie=new Set(["be","go","start","think","need"]),se=new Set(["been","gone"]);var le=function(e,t){let n=e[t].normal.split(ae)[0];if(oe.has(n))return[n,"did"];if(e[t+1]){if(se.has(e[t+1].normal))return[n,"had"];if(ie.has(e[t+1].normal))return[n,"would"]}return null};var ue=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ce=/'/;var he=(e,t)=>["je",e[t].normal.split(ce)[1]],de=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},me=(e,t)=>{let n=e[t].normal.split(ce)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,ge=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,fe=/^[0-9]{3}-[0-9]{4}$/;var ve=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||fe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(ge),null!==r?[r[1],"to",r[4]]:null)};const be=/^([0-9.,+-]+)([a-z°²³µ/]+)$/i,ye=new Set(["st","nd","rd","th","am","pm","max"]);var we=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const ke=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,Ae=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},je={t:(e,t)=>ue(e,t),d:(e,t)=>le(e,t)},Ne={j:(e,t)=>he(e,t),l:(e,t)=>de(e,t),d:(e,t)=>me(e,t)},Ee=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===ke.test(r[s].normal)&&([l,u]=r[s].normal.split(ke));let c=Ee(o,r[s],l,u);!c&&je.hasOwnProperty(u)&&(c=je[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),c?(c=xe(c,e),re(n,[i,s],c),Ae(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=ve(r,s),c&&(c=xe(c,e),re(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Ae(n[i],e,s,c.length))):(c=we(r,s),c&&(c=xe(c,e),re(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}})}},hooks:["contractions"]};var Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:function(e){let t={},n={};return Object.keys(e).forEach(r=>{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a}),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}}}},compute:{lexicon:function(e){const t=e.world;e.docs.forEach(e=>{for(let n=0;n{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))}),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},hooks:["lexicon"]};var Be=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map(e=>e.text.toLowerCase())}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Ve=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Fe=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1);return e};var Se=function(e){return e.goNext=e.goNext.map(e=>{if(0!==Object.keys(e).length)return e}),e.goNext=Fe(e.goNext,void 0),e.failTo=Fe(e.failTo,0),e.endAs=Fe(e.endAs,null),e};const He={buildTrie:function(e){const t=Be(e,this.world());return Se(t)}};He.compile=He.buildTrie;var Me={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Be(e,this.world));var r;let a=$e(this,n,t);return a=a.settle(),a}},lib:He};const We=function(e,t){return t?(e.forEach(e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])}),e):e},Le=function(e,t){let{ptrs:n,byGroup:r}=e;return n=We(n,t),Object.keys(r).forEach(e=>{r[e]=We(r[e],t)}),{ptrs:n,byGroup:r}},Je=e=>"[object Object]"===Object.prototype.toString.call(e),qe=e=>e&&Je(e)&&!0===e.isView,Ke=e=>e&&Je(e)&&!0===e.isNet,Ue=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Re={matchOne:function(e,t,n){const r=this.methods.one;if(qe(e))return this.intersection(e).eq(0);if(Ke(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ue(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Le(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(qe(e))return this.intersection(e);if(Ke(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ue(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Le(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(qe(e)){return e.fullPointer.length>0}if(Ke(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ue(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(qe(e))return this.filter(t=>t.intersection(e).found);if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ue(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0});let s=this.update(o);return this._cache&&(s._cache=o.map(e=>i[e[0]])),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(qe(e))return this.filter(t=>!t.intersection(e).found);if(Ke(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ue(e,n,this.world);let o=this._cache||[],i=this.filter((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length});return this._cache&&(i._cache=i.ptrs.map(e=>o[e[0]])),i}};var _e={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?1:-1)[0];t[1]>0&&a.push([t[0],0,t[1]])});let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach(e=>{let t=o[e].sort((e,t)=>e[1]>t[1]?-1:1)[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}}),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}}),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Qe=function(e,t){return[e[0],e[1],t[2]]},Ze=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},Ye=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},Xe={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Ze(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Ye(e,this)),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Ze(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Qe(e.match,e.after)):(o.push(e.match),o.push(e.after))}),o=o.filter(e=>e),o=o.map(e=>Ye(e,this)),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=Ze(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach(e=>{o.push(e.passthrough),e.before&&e.match?o.push(Qe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)}),o=o.filter(e=>e),o=o.map(e=>Ye(e,this)),this.update(o)}};Xe.split=Xe.splitAfter;var et=Xe;const tt=Object.assign({},Re,_e,et);tt.lookBehind=tt.before,tt.lookBefore=tt.before,tt.lookAhead=tt.after,tt.lookAfter=tt.after,tt.notIf=tt.ifNo;var nt=function(e){Object.assign(e.prototype,tt)};const rt=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,at=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ot=/ /g,it=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),st=function(e){return e=(e=e.map(e=>e.trim())).filter(e=>e)};var lt=function(e){let t=e.split(rt),n=[];t.forEach(e=>{it(e)?n.push(e):n=n.concat(e.split(at))}),n=st(n);let r=[];return n.forEach(e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||it(e)?r.push(e):r=r.concat(e.split(ot))}),r=st(r),r};const ut=/\{([0-9]+)?(, *[0-9]*)?\}/,ct=/&&/,ht=new RegExp(/^<\s*(\S+)\s*>/),dt=e=>e.charAt(0).toUpperCase()+e.substring(1),mt=e=>e.charAt(e.length-1),pt=e=>e.charAt(0),gt=e=>e.substring(1),ft=e=>e.substring(0,e.length-1),vt=function(e){return e=gt(e),e=ft(e)},bt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===mt(e)&&(n.end=!0,e=ft(e)),"^"===pt(e)&&(n.start=!0,e=gt(e)),("["===pt(e)||"]"===mt(e))&&(n.group=null,"["===pt(e)&&(n.groupStart=!0),"]"===mt(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===pt(e))){const t=ht.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===mt(e)&&(n.greedy=!0,e=ft(e)),"*"!==e&&"*"===mt(e)&&"\\*"!==e&&(n.greedy=!0,e=ft(e)),"?"===mt(e)&&(n.optional=!0,e=ft(e)),"!"===pt(e)&&(n.negative=!0,e=gt(e)),"~"===pt(e)&&"~"===mt(e)&&e.length>2&&(e=vt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===pt(e)&&")"===mt(e)){ct.test(e)?(n.choices=e.split(ct),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=gt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ft(n.choices[r]),n.choices=n.choices.map(e=>e.trim()),n.choices=n.choices.filter(e=>e),n.choices=n.choices.map(e=>e.split(/ /g).map(e=>bt(e,t))),e=""}if("/"===pt(e)&&"/"===mt(e))return e=vt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===pt(e)&&"}"===mt(e)){if(e=vt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===pt(e)&&">"===mt(e))return e=vt(e),n.chunk=dt(e),n.greedy=!0,n;if("%"===pt(e)&&"%"===mt(e))return e=vt(e),n.switch=e,n}return!0===ut.test(e)&&(e=e.replace(ut,(e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),""))),"#"===pt(e)?(n.tag=gt(e),n.tag=dt(n.tag),n):"@"===pt(e)?(n.method=gt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var yt=bt;const wt=/[a-z0-9][-–—][a-z]/i;var kt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&wt.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter(e=>e).reverse(),e.splice(t,1),a.forEach(n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)})}}return e};var Pt=function(e,t){return t.methods.two&&t.methods.two.transform&&(e=e.map(e=>{if(e.root){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform,r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter(e=>e)}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return r.push(n(e.root,t.model)),r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o}(e,t))),n=n.filter(e=>e),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}return e})),e};var At=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach(t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)}),e))}(e=e.map(e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every(e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method})&&(e.fastOr=new Set,e.choices.forEach(t=>{e.fastOr.add(t[0].word)}),delete e.choices)}return e}))};var jt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=lt(e);return r=r.map(e=>yt(e,t)),r=kt(r,n),r=Pt(r,n),r=At(r),r};const Nt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Et=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Ot=(e,t)=>-1!==e.pre.indexOf(t),Bt={hasQuote:e=>It.test(e.pre)||Gt.test(e.post),hasComma:e=>Ct(e,","),hasPeriod:e=>!0===Ct(e,".")&&!1===Ct(e,"..."),hasExclamation:e=>Ct(e,"!"),hasQuestionMark:e=>Ct(e,"?")||Ct(e,"¿"),hasEllipses:e=>Ct(e,"..")||Ct(e,"…")||Ot(e,"..")||Ot(e,"…"),hasSemicolon:e=>Ct(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Tt.test(e.post)||Tt.test(e.pre),hasDash:e=>Dt.test(e.post)||Dt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Bt.hasQuotation=Bt.hasQuote;var Vt=Bt;let zt=function(){};zt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(xt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some(e=>e===t.word))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Vt[t.method]&&!0===Vt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every(t=>zt(e,t,n,r)):t.choices.some(t=>zt(e,t,n,r)))}(e,t,n,r);return!0===t.negative?!a:a};var $t=zt;const Ft=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){St(e,e.t).length=r-e.t}return e.t=r,!0};const Mt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=$t(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&$t(e.terms[r],t,r,e.phrase_length)});return!0===r&&n.length>t&&(t=n.length),r})&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){St(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Jt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);return r.negative=!1,!0!==$t(e.terms[e.t],r,e.start_i+e.t,e.phrase_length)||null};var qt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=$t(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&$t(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Kt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Ut=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Rt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&qt(e),r.implicit&&e.terms[e.t+1]&&Ut(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Kt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=St(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var _t=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Ft(e,a))if(!0!==$t(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(e.negative){if(!Jt(a))return null}if(!0!==e.optional)return null}else{if(!Rt(a))return null}else{if(!Rt(a))return null}else{if(!Rt(a))return null}else{if(!Lt(a))return null}else{if(!Wt(a))return null}else{if(!Ht(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach(e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]}),{pointer:o,groups:i}};var Qt=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach(e=>{e.groups[t]&&n.push(e.groups[t])}):e.forEach(e=>{n.push(e.pointer),Object.keys(e.groups).forEach(t=>{r[t]=r[t]||[],r[t].push(e.groups[t])})})),{ptrs:n,byGroup:r}};const Zt=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach(n=>{e.groups[n][0]=t}),e},Yt=function(e,t,n){let r=_t(e,t,0,e.length);return r?(r=Zt(r,n),r):null};var Xt={api:nt,methods:{one:{termMethods:Vt,parseMatch:jt,match:function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter(e=>!0!==e.optional&&!0!==e.negative).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=Yt(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter(t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]})),i=Qt(i,a),i.ptrs.forEach(t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id}),i}}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const en=/^\../,tn=/^#./,nn=function(e,t){let n={},r={};return Object.keys(t).forEach(a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),en.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach(e=>{if(e.every(e=>e.implicit))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)})}),{starts:n,ends:r}};var rn={html:function(e){let{starts:t,ends:n}=nn(this,e),r="";return this.docs.forEach(e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(on,""),ln.test(a)&&(a=" "),a=a.replace(sn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(on,""),a="-"===a?" ":a.replace(an,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&un.test(a)||(a+=" "),r+=n+o+a}),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},hn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};hn.clean=hn.normal,hn.reduced=hn.root;var dn=hn;let mn=[],pn=0;for(;pn<64;)mn[pn]=0|4294967296*Math.sin(++pn%Math.PI);function gn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(pn=i=0;pn>4]+mn[i]+~~o[pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const fn={text:!0,terms:!0};let vn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const bn=function(e,t){return Object.assign({},e,t)},yn={text:e=>cn(e,{keepPunct:!0},!1),normal:e=>cn(e,bn(dn.normal,{keepPunct:!0}),!1),implicit:e=>cn(e,bn(dn.implicit,{keepPunct:!0}),!1),machine:e=>cn(e,vn,!1),root:e=>cn(e,bn(vn,{form:"root"}),!1),hash:e=>gn(cn(e,{keepPunct:!0},!1)),offset:e=>{let t=yn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map(e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t}),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some(e=>!0===e.dirty)};yn.sentences=yn.sentence,yn.clean=yn.normal,yn.reduced=yn.root;const wn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},fn,r)).offset&&n.compute("offset"),n.docs.map((e,t)=>{let a={};return Object.keys(r).forEach(o=>{r[o]&&yn[o]&&(a[o]=yn[o](e,n,t))}),a}));var n,r;return"number"==typeof e?t[e]:t}};wn.data=wn.json;var kn=wn;var Pn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach(e=>{console.groupCollapsed(e.text());let t=e.docs[0].map(e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}});console.table(t,["text","tags"]),console.groupEnd()})};var An={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var jn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(An.blue("\n ──────")),t.forEach(e=>{console.log(An.blue("\n ┌─────────")),e.forEach(e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=An.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=An.blue(" │ ")+An.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map(e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return An[n](e)})),e.join(", ")}(t,n);console.log(o)})})};var Nn=function(e){let{docs:t}=e;console.log(""),t.forEach(e=>{let t=[];e.forEach(e=>{"Noun"===e.chunk?t.push(An.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(An.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(An.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(An.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)}),console.log(t.join(" "),"\n")})};var En=function(e){if(!e.found)return;let t={};e.fullPointer.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),Object.keys(t).forEach(n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${An.blue(r[1])}${r[2]}`}(r,e.offset,t)}),console.log(r)})};const xn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var In=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach(r=>{e.match(r).fullPointer.forEach(e=>{n[e[3]]={fn:t[r],end:e[2]}})}),n}(e,t),r="";return e.docs.forEach((t,a)=>{for(let o=0;oe.reduce((e,t)=>e+t.pre+t.text+t.post,"").trim()).filter(e=>e)}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};return e.forEach(e=>{t[e]=t[e]||0,t[e]+=1}),Object.keys(t).map(e=>({normal:e,count:t[e]})).sort((e,t)=>e.count>t.count?-1:0)}(this.json({normal:!0}).map(e=>e.normal));if("terms"===e){let e=[];return this.docs.forEach(t=>{let n=t.terms.map(e=>e.text);n=n.filter(e=>e),e=e.concat(n)}),e}return"tags"===e?this.docs.map(e=>e.reduce((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e),{})):"debug"===e?this.debug():this.text()}};var Tn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&dn.hasOwnProperty(e)?t=Object.assign({},dn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Bn=function(e){let t={};return e.forEach(e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)}),t};var Vn=function(e,t){let n=Bn(t),r=[];return e.forEach(e=>{let[t]=e,a=n[t]||[];if(a=a.filter(t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t)),0===a.length)return void r.push({passthrough:e});a=a.sort((e,t)=>e[1]-t[1]);let o=e;a.forEach((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)})}),r};var zn={one:{termList:function(e){let t=[];for(let n=0;n{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<4;r+=1){if(t[n-r]){let a=t[n-r].findIndex(t=>t.id===e);if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex(t=>t.id===e);if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex(e=>e.id===a);return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))}),n=n.filter(e=>e.length>0),n},pointer:{indexN:Bn,splitAll:Vn}}};var $n=function(e,t){let n=e.concat(t),r=Bn(n),a=[];return n.forEach(e=>{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter(t=>On(e,t));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach(e=>{e[1]n&&(n=e[2])}),[e[0][0],t,n]}(n);a.push(o)}),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)}),n};var Sn=function(e,t){let n=Bn(t),r=[];return e.forEach(e=>{let t=n[e[0]]||[];t=t.filter(t=>On(e,t)),0!==t.length&&t.forEach(t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Mn=function(e,t){return e.map(e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e})},Wn={union:function(e){e=Hn(e,this);let t=$n(this.fullPointer,e.fullPointer);return t=Mn(t,this.document),this.toView(t)}};Wn.and=Wn.union,Wn.intersection=function(e){e=Hn(e,this);let t=Sn(this.fullPointer,e.fullPointer);return t=Mn(t,this.document),this.toView(t)},Wn.not=function(e){e=Hn(e,this);let t=Fn(this.fullPointer,e.fullPointer);return t=Mn(t,this.document),this.toView(t)},Wn.difference=Wn.not,Wn.complement=function(){let e=this.all(),t=Fn(e.fullPointer,this.fullPointer);return t=Mn(t,this.document),this.toView(t)},Wn.settle=function(){let e=this.fullPointer;return e.forEach(t=>{e=$n(e,[t])}),e=Mn(e,this.document),this.update(e)};var Ln={methods:zn,api:function(e){Object.assign(e.prototype,Wn)}};const Jn=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var qn=function(e,t){const n=t.methods.one.parseMatch;return e.forEach(e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach(e=>{t.push(Jn(e)),"and"===e.operator&&e.choices&&e.choices.forEach(e=>{e.forEach(e=>{t.push(Jn(e))})})}),t.filter(e=>e)}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach(e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach(e=>{t.push(e)}),e.choices&&e.choices.forEach(e=>{e.forEach(e=>{let n=Jn(e);n&&t.push(n)})}),n+=1)}),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter(e=>!e.optional).length}),e};var Kn=function(e,t){return e.map((n,r)=>{let a=[];Object.keys(t).forEach(n=>{e[r].has(n)&&(a=a.concat(t[n]))});let o={};return a=a.filter(e=>!o[e.match]&&(o[e.match]=!0,!0)),a})};var Un=function(e,t){return e.map((e,n)=>{let r=t[n];return e=(e=(e=e.filter(e=>e.needs.every(e=>r.has(e)))).filter(e=>void 0===e.ifNo||!0!==e.ifNo.some(e=>t[n].has(e)))).filter(e=>{if(0===e.wants.length)return!0;return e.wants.filter(e=>r.has(e)).length>=e.minWant})})};var Rn=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach(e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)}),!0===r.matchOne))return[a[0]]}return a};var _n=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e});let i=o.map(e=>e.pointer);return o=o.map(e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e)),{view:this.update(i),found:o}}},methods:{one:{buildNet:function(e,t){e=qn(e,t);let n={};e.forEach(e=>{e.needs.forEach(t=>{n[t]=n[t]||[],n[t].push(e)}),e.wants.forEach(t=>{n[t]=n[t]||[],n[t].push(e)})}),Object.keys(n).forEach(e=>{let t={};n[e]=n[e].filter(e=>!t[e.match]&&(t[e.match]=!0,!0))});let r=e.filter(e=>0===e.needs.length&&0===e.wants.length);return{hooks:n,always:r}},bulkMatch:function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=Kn(a,t.hooks);return o=Un(o,a),t.always.length>0&&(o=o.map(e=>e.concat(t.always))),o=function(e,t){return e.map((e,n)=>{let r=t[n].length;return e.filter(e=>r>=e.minWords)})}(o,e),Rn(o,e,n,r)},bulkTagger:function(e,t,n){const{model:r,methods:a}=n,{getDoc:o,setTag:i,unTag:s}=a.one;if(0===e.length)return e;return("undefined"!=typeof process&&process.env?process.env:self.env||{}).DEBUG_TAGS&&console.log(`\n\n → ${e.length} post-tagger:`),e.map(e=>{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,l=o([e.pointer],t)[0];if(!0===e.safe){if(!1===_n(l,e.tag,r))return;if("-"===l[l.length-1].post)return}void 0!==e.tag&&(i(l,e.tag,n,e.safe,`[post] '${a}'`),1===l.length&&"Noun"===e.tag&&l[0].text&&null!==l[0].text.match(/..s$/)&&i(l,"Plural",n,e.safe,"quick-plural")),void 0!==e.unTag&&s(l,e.unTag,n,e.safe,a),e.chunk&&l.forEach(t=>t.chunk=e.chunk)})}}}};const Zn=/ /,Yn=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},Xn=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map(e=>e.text||"["+e.implicit+"]").join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if(t=t.trim(),Zn.test(t))!function(e,t,n,r){let a=t.split(Zn);e.forEach((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),Xn(e,o,n,r))})}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;ner(e,t,n,r))};var tr=er;var nr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach(e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map(e=>e.trim()).filter(e=>e),t=t.map(e=>rr({id:e})),t}return[rr({id:e})]}(e))}),n=n.filter(e=>e);let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach(n=>{t&&t(e,n),r.push(n)})}return n},sr=e=>"[object Array]"===Object.prototype.toString.call(e),lr=e=>(e=e||"").trim(),ur=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach(e=>{if(!e.trim()||ar.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:or(e)})});let r=function(e){let t={children:[]};return e.forEach((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e});let n=rr({});return e.forEach(e=>{if((e=rr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)}),n}(e):(ir(t=e).forEach(rr),t);var t},cr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return ir(e).forEach((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"}),r},hr=function(e){let t=ir(e);t.forEach(e=>{delete(e=Object.assign({},e)).children});let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},dr={text:cr,txt:cr,array:hr,flat:hr},mr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(cr(e,!0)),null):dr.hasOwnProperty(t)?dr[t](e):e},pr=e=>{ir(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))})},gr=/\//;class g$1{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=lr(e),!gr.test(e)){let t=this.json.children.find(t=>t.id===e);return new g$1(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]);if(!r)return null;e=r}return e})(this.json,e)||rr({});return new g$1(t)}add(e,t={}){if(sr(e))return e.forEach(e=>this.add(lr(e),t)),this;e=lr(e);let n=rr({id:e,props:t});return this.json.children.push(n),new g$1(n)}remove(e){return e=lr(e),this.json.children=this.json.children.filter(t=>t.id!==e),this}nodes(){return ir(this.json).map(e=>(delete(e=Object.assign({},e)).children,e))}cache(){return(e=>{let t=ir(e,(e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))}),n={};t.forEach(e=>{e.id&&(n[e.id]=e)}),t.forEach(e=>{e._cache.parents.forEach(t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)})}),e._cache.children=Object.keys(n)})(this.json),this}list(){return ir(this.json)}fillDown(){var e;return e=this.json,ir(e,(e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach(n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else sr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])}),e))(t.props,e.props)}),this}depth(){pr(this.json);let e=ir(this.json),t=e.length>1?1:0;return e.forEach(e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)}),t}out(e){return pr(this.json),mr(this.json,e)}debug(){return pr(this.json),mr(this.json,"debug"),this}}const fr=function(e){let t=ur(e);return new g$1(t)};fr.prototype.plugin=function(e){e(this)};var vr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const br=function(e){if(vr.hasOwnProperty(e.id))return vr[e.id];if(vr.hasOwnProperty(e.is))return vr[e.is];let t=e._cache.parents.find(e=>vr[e]);return vr[t]};var yr=function(e){const t={};return e.forEach(e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:br(e)}}),Object.keys(t).forEach(e=>{let n=new Set(t[e].not);t[e].not.forEach(e=>{t[e]&&t[e].children.forEach(e=>n.add(e))}),t[e].not=Array.from(n)}),t};const wr=function(e){return e?"string"==typeof e?[e]:e:[]};var kr=function(e,t){return e=function(e,t){return Object.keys(e).forEach(n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))}),e}(e,t),Object.keys(e).forEach(t=>{e[t].children=wr(e[t].children),e[t].not=wr(e[t].not)}),Object.keys(e).forEach(t=>{(e[t].not||[]).forEach(n=>{e[n]&&e[n].not&&e[n].not.push(t)})}),e};var Pr={one:{setTag:tr,unTag:nr,addTags:function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach(t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0}),e}(e)),e=kr(e,t);const n=function(e){const t=Object.keys(e).map(t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}});return fr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return yr(n)}}};const Ar=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var jr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ar(e)?e.forEach(e=>a.one.setTag(r,e,i,n,t)):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ar(e)?e.forEach(e=>r.one.unTag(n,e,i)):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach((e,t)=>{e.forEach((e,a)=>{n.find(t=>e.tags.has(t))&&r.push([t,a,a+1])})});let a=this.update(r);return this.difference(a)}};var Nr=function(e){Object.assign(e.prototype,jr)};var Er={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const xr=new Set(["Auxiliary","Possessive"]);var Ir={model:{one:{tagSet:{}}},compute:{tagRank:function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach(e=>{e.forEach(e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e.sort((e,n)=>{if(xr.has(e)||!t.hasOwnProperty(n))return 1;if(xr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})}(t,r)})})}},methods:Pr,api:Nr,lib:Er};const Gr=/(\S.+?[.!?\u203D\u2E18\u203C\u2047-\u2049])(?=\s|$)/g,Tr=/((?:\r?\n|\r)+)/;//!TODO: speedup this regex +var Dr=function(e){let t=[],n=e.split(Tr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const zr=/\S/,$r=/^\s+/;var Fr=function(e,t){if(e=e||"",!(e=String(e))||"string"!=typeof e||!1===zr.test(e))return[];e=e.replace(" "," ");let n=Dr(e),r=Br(n),a=Vr(r,t);if(0===a.length)return[e];for(let e=1;e(e[t]=!0,e),{});const Rr=/^[ \n\t.[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*•^†‡¡¿※№÷׺ª%‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u0027\u201C\u201F\u201B\u201E\u2E42\u201A\u2035\u2036\u2037\u301D\u0060\u301F]+/,_r=/[ \n\t.'[\](){}⟨⟩:,،、‒–—―…!‹›«»‐\-?‘’;/⁄·&*@•^†‡°¡¿※#№÷׺ª‰+−=‱¶′″‴§~|‖¦©℗®℠™¤₳฿\u0022\uFF02\u201D\u00B4\u301E]+$/,Qr=/['’]/,Zr=/^[a-z]\.([a-z]\.)+/i,Yr=/^[-+.][0-9]/,Xr=/^'[0-9]{2}/;var ea=function(e){let t=e,n="",r="";return""===(e=(e=e.replace(Rr,t=>(n=t,"-"!==n&&"+"!==n&&"."!==n||!Yr.test(e)?"'"===n&&Xr.test(e)?(n="",t):"":(n="",t)))).replace(_r,a=>(r=a,Qr.test(a)&&/[sn]['’]$/.test(t)&&!1===Qr.test(n)?(r=r.replace(Qr,""),"'"):!0===Zr.test(e)?(r=r.replace(/\./,""),"."):"")))&&(t=t.replace(/ *$/,e=>(r=e||"","")),e=t,n=""),{str:e,pre:n,post:r}};var ta=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const na=/([A-Z]\.)+[A-Z]?,?$/,ra=/^[A-Z]\.,?$/,aa=/[A-Z]{2,}('s|,)?$/,oa=/([a-z]\.)+[a-z]\.?$/;var ia=function(e){return function(e){return!0===na.test(e)||!0===oa.test(e)||!0===ra.test(e)||!0===aa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var sa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=ta(r),r=n(r,t),r=ia(r),e.normal=r};const la=/[ .][A-Z]\.? *$/i,ua=/(?:\u2026|\.{2,}) *$/,ca=/\p{L}/u;var ha={one:{killUnicode:function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach((e,t)=>{n[e]&&(r[t]=n[e])}),r.join("")},tokenize:{splitSentences:Fr,isSentence:function(e,t){if(!1===ca.test(e))return!1;if(!0===la.test(e))return!1;if(!0===ua.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Kr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=Lr(n),n=Mr(n),n=n.filter(e=>e),n},splitWhitespace:e=>{let{str:t,pre:n,post:r}=ea(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map(e=>{let n=o(e,r);return n=n.map(i),n.forEach(e=>{sa(e,t)}),n})}}}};var da={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let ma={},pa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mister","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach(e=>{e[0].forEach(t=>{ma[t]=!0,pa[t]="Abbreviation",void 0!==e[1]&&(pa[t]=[pa[t],e[1]])})});var ga=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce((e,t)=>(e[t]=!0,e),{});let fa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},va={};Object.keys(fa).forEach((function(e){fa[e].split("").forEach((function(t){va[t]=e}))}));const ba=/\//,ya=/[a-z]\.[a-z]/i,wa=/[0-9]/;var ka=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),ba.test(n)&&!ya.test(n)&&!wa.test(n)){let t=n.split(ba);t.length<=2&&t.forEach(t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))})}return e};const Pa=/^\p{Letter}+-\p{Letter}+$/u;var Aa=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),Pa.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ja=function(e){let t=0,n=0,r=e.document;for(let e=0;eNa(e,ka),machine:e=>Na(e,Aa),normal:e=>Na(e,sa),freq:function(e){let t=e.docs,n={};for(let e=0;e{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]}),r};const Ga={safe:!0,min:3};var Ta={model:{one:{typeahead:{}}},api:function(e){e.prototype.autoFill=xa},lib:{typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},Ga,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=Ia(e,t,this.world());return Object.keys(a).forEach(e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]}),this}},compute:{typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}},hooks:["typeahead"]};P.extend(te),P.extend(Cn),P.extend(Xt),P.extend(Ln),P.extend(Ir),P.plugin(Ie),P.extend(Ea),P.plugin(j),P.extend(Me),P.extend(Ta),P.extend(Oe),P.extend(Qn);var Da={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Ca={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7T;1:6L;2:7P;3:80;4:7Z;5:83;6:6Y;7:7J;8:76;9:6U;a7Lb6Wc5Vd59e51f4Dg43h3Vi3Pj3Nk3Ll3Bm32n2Yo2Up21ques7Nr1Ds07tTuRvMwCyBzA;ip,o6E;awn,e1Wie4T;aHeaGhEiCoAre7N;nd0rA;k,ry;mp,nApe,re,sh,tne85;!d,g;e6IiA;p,st6;r,th0;it,rAs4t2ve,x;ehou1ra84;aDiCoA;iAlunte0te,w;ce,d;be,ew,s8;cuum,l39;pAsh0;da4gra50lo4X;aLeKhrJiIoHrDuBwiAy4N;n,st;nArn;e,n63;aCeBiAu7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5Z;ll,ne,r3Rss,t77u2;ck,e,me,p,re;e4Mow,u7;ar,e,st;g,lArg63s4;k,ly;a0Ec09e06h01iZkXlVmUnTou6DpPtFuBwA;ear,it2;b1Xit,m,ppBrAspe5;ge,pri1vey;lAo5C;e59y;aHeGiFoDrBuAy6;dy,ff,mb6;a6DeAi4G;am,ss,t2;cking,p,rA;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,rAte,y;!e,t;aCeed,iBla4Lons6NrAy;ay,e41ink6u3;n,r6Jte;n,rk;ee1Eow;e0Fi6o43;eep,iA;ce,p,t;ateboa60iA;!p;de,gnAze;!al;aDeCiBoA;ck,p,w;ft,p,v0;d,i32;pe,re;aBed,nArv15t;se,t1X;l,r2t;aDhedu6oCrA;at2eA;en,w;re,ut;le,n,r0I;crifi3il;aVeEiDoCuA;b,in,le,n,sA;h,t;a7ck,ll,ot;de,ng,p,s1B;as5FcOdo,el,fMgLje5lKmInHo0UpFque7sCturn,vAwa5D;eAi1I;al,r1;er5KoBt,uA;lt,me;l5Irt;air,eaAly,o3Z;l,t;dezvo25t;aAedy;ke,rk;ea1i3F;a51ist0r4E;act5Form,uA;nd,se;aAo4Yru8;ll;ck,i1ke,l48nAtU;ge,k;aZeWhUiRlNoJrBuA;mp,n2rcha1sh;ai1eFiEoAu3L;be,ceCdu3grAje5mi1te7;amAe5F;!me;ed,ss;ce,de;sAy;er4Vs;iClAol,p,re,s2Sw0;iAl;ce,sh;nt,s4J;aBe2AuA;g,n9;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a1oA;ne,tograph;ak,eBn,rAt;fu3Wm8;!l;cka9iBn,rtAss,t2u1;!y;nt,r;bCff0il,oBrAutli2U;d0ie4U;ze;je5;a3NeCoA;d,tA;e,i3;ed,gle5rd,t;aFeDiCoBuA;rd0;d2Vnit46p,ve;lk,n2Zrr45x;asu12n3QrAss;ge,it;il,nBp,rk30sAt2;h,k;da4oeuv0Y;aGeDiCoAump;aAbby,ck,g,ok,ve;d,n;cen1ft,m8nEst;aBc0DvA;el,y;ch,d,p,se;bBcAnd,t2un2;e,k;el,o26;e2EiAno3E;ck,ll,ss;am,o18uA;d9i3;mpEnBr38ssA;ue;cr1Adex,fluBha6k,se1WterviAvoi3;ew;en3;a5le1R;aEeCiBoAu3U;ld,no1Uok,pe,r1st,u1;ghlight,ke,re,t;aAlp;d,t;ndBrAte;bo32m,ne3Jve7;!le;aIeek,lo3HoHrCuA;arAe3Gi0On;antee,d;aCiBoAumb6;om,u2D;nd,p;dAsp;e,ua4;of,ssip;in,me,ng,s,te,ze;aWeSiNlJoGrCuA;el,nAzz;c2Hd;aBoAy;st,wn;cAme;tuP;cBg,ol,rA;ce,e1Pm;us;aCe0Lip,oAy;at,od,wA;!er;g,re,sh,vo10;eDgClBnAre,sh,t,x;an3i0G;e,m,t0;ht,uE;ld;aBeAn3;d,l;r,tuA;re;ce,il,ll,rm,vo23;cho,nGsExAye;cCerci1hib8pAtra5;eriAo0K;en3me2L;el,han9;caAtima4;pe;count0d,gine0vy;aTeNiHoFrBuAye;b,mp,pli26;aCeBiA;ft,nk,ve;am,ss;ft,in;cu06d9ubt,wnloA;ad;p,sCvA;e,iAor3;de;char9liBpA;at2lay,u4;ke;al,ba4cDfeClBma0Xpos8siAtail;gn,re;ay,ega4;at,ct;liXrA;ea1;ma9n3rAte;e,t;a07ent06hZlWoGrCuA;be,rAt;e,l;aft,eCoBuAy;sh;p,ss,wd;d8ep;de,in,lNmHnCok,py,re,st,uAv0;gh,nAp6;sVt;ceCdu5glomeDstru5tAveI;a5rA;a7ol;ntArn;ra4;biEfoDmCpA;leAou09romi1;me1D;a07e1Cu4;rt;ne;lap1oA;r,ur;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen9mpi0AnBrAuffe0G;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,p,rBsh,t2u1ve;se;d,e;aUeRiQlNoJrDuAypa0O;bb6ck6dgBff0lArn,st,zz;ly;et;anEeaDiBoadA;ca7;be,d9;ge;ch,k;ch,d;aCmb,ne,oBss,tt6x,ycott;le;k,st,t;rd,st;aBeAitz,oP;nd;me;as,d,ke,te;aBnef8t;it;r,t;il,lan3nCrgaBsA;e,h;in;!d,g,k;c01dTffilSge,iRlt0nOppLrHssFttDucBwaA;rd;tiA;on;aAempt;ck;i7ocM;st;chBmoA;ur;!iA;ve;eBroa2;ch;al;chAsw0;or;er;d,m,r;ia4;dEvA;an3oA;ca4;te;ce;i5reA;ss;ct;cAhe,t;eCoA;rd,uA;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJecretary,oldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt",Honorific:"true¦aObrigadiNcGdFexcellency,fiAliCma9officNp5queen,r2s0taoiseach,vice4;e0ultJ;cond liArgeaB;abbi,e0;ar0verend; adK;astGr0;eside6i0ofessF;me ministFnce0;!ss;gistrate,r4yC;eld mar3rst l0;ady,i0;eutena0;nt;shB;oct6utchess;aptain,hance4o0;lonel,mmand5n0unci3;gress0stable;m0wom0;an;ll0;or;er;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:59;1:4I;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f1i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in0; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f1roga2;st3Dtot0;aCepBipe3Qo1BrAudent9;! lo1K;ang1i8;fa1Fmo1F;ff1t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm1;e4r0;it0ord label;a2u41;estion mark,ot28;aMeKhJiHlFort0rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y1;cn5e9g;!r;armaci38otocoH;dest0ncil,r9t0;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde0thers,ve9wn1;n,rview;cu9e0F;pi1;aAit24ot9umb1;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr0;mAnopo3pQrni8sq1Pt9u13;h1i35;!my;li0Wn09;d5nu,t0;mm0nAte9yf3;ri0;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi1id;a16d9; slam,fa9mo9;th1;d,lf1;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er0;ee market,iAon9;ti1;e16ga2;ame,u2;nan9ref3;ci1;lla,t14;br5mi3n0Uth1;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i1;cAg1Fi3or,ssi1wn9;si0M;to0BumenB;ale6gniAnn1s9vide0O;conte4incen7tri6;ta0A;aBc0fAni0te9;c7rre4;ault 05err0;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi1rr0t11u9yo2;ri1s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli1racter9;ist5;ili8llDr9;e0tifica2;hi1naFpErCshi1t9ucus;erpi9hedr0;ll9;ar;bohyd9ri1;ra2;it0;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i0;!y;ny;eakBiAo9;!th1;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri1;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru0eAqui9;tt0;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a05bZcWdPeNfMgKhHjDkiClBm9olive,p6r3s2triniYv0wang;an,enus,iol0;a,et;ky,on5umm01;ay,e1o0uby;bin,d,se;ed,x;atOe0ol;aGn0;ny;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0S;a0Rb0Mc0Cde0Be06f00gZhomel08iXjuWlVmPnOoNpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Dnt;ndergr1pstairs;adua0Jou1;nd;a3e1oken,ri0;en,r1;min0ror0B;boo,n;e6istZo4qua3ta2u1well;bordina0Cper6;b03ndard;re,t;cial05l1;e,ve0G;cret,n1ri0;ior;e1outiIubbish;ar,laUnt0p1;resentaTublican;atie0Aeriodic0otenti0rincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9F;1:9V;2:9N;3:9X;4:9H;5:8K;6:9K;7:A0;8:9E;9:89;A:77;B:6F;C:6J;a9Ub8Mc7Kd6Xe6Sf6Eg5Vh58i54j4Pk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsADhD;aDou,u;ng,o;aGeun80iDoshiA9un;!lD;diDmaz;rim,z;maDng;da,guc97mo6UsDzaA;aAhiA7;iao,u;aHeGiEoDright,u;jc8Sng;lDmm0nkl0sniewsA;liA1s3;b0iss,lt0;a5Sgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7O;lGn dFrg8EsEzD;qu7;ily9Oqu7silj9O;en b35ijk,yk;enzue95verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om4ZrD;c2n0un1;an,embl8TynisA;dor95lst31m4rr9th;at5Mi7MoD;mErD;are6Zlaci64;ps3s0Z;hirBkah8Dnaka;a01chXeUhQiNmKoItFuEvDzabo;en8Aobod34;ar7bot4lliv2zuA;aEein0oD;i67j3Lyan8V;l6rm0;kol5lovy5re6Qsa,to,uD;ng,sa;iDy5Z;rn5tD;!h;l5YmEnDrbu;at8gh;mo6Do6J;aFeDimizu;hu,vchD;en7Cuk;la,r17;gu8mDoh,pulve8Srra4R;jDyD;on5;evi6Filtz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar41h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Oe,os;as,ihBm3Yo0Q;aOeNiKoGuEyD;a66oo,u;bio,iz,sD;so,u;bEc7Adrigue56g03j72mDosevelt,ssi,ta7Mux,w3Y;a4Be0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Yv5E;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if5Zochazk1V;lishc23pDrti62u54we66;e2Sov47;cEe09nD;as,to;as60hl0;aDillips;k,m,n5K;de39etIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h70k,rk0tEvD;ic,l3S;el,t2N;bJconnor,g2BlGnei5PrEzD;demir,turk;ella3LtDwe5N;ega,iz;iDof6FsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune43ym2;rodahl,vDwak;ak3Tik5otn56;eEkolDlsCx3;ic,ov6W;ls1miD;!n1;ils3mD;co41ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5S;atDpTr67;i,ov4;oz,te4B;d0l0;h2lIo0GrEsDza0Y;er,s;aFeEiDoz5r3Dte4B;!n6E;au,i8no,t4M;!l9;i2Ql0;crac5Nhhail5kke3Pll0;hmeFij0j2ElEn2Wrci0ssiDyer18;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Dgnu5Ei0jer34kLmJnci59rFtEyD;er,r;ei,ic,su1N;iEkBqu9roqu6tinD;ez,s;a54c,nD;!o;a52mD;ad5;e5Oin1;rig4Os1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Rvr4;di;!nDu,yana1S;coln,dD;bDholm;erg;bed5TfeGhtFitn0kaEn6rDw2G;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t11;aTennedy,h2iSlQnez47oJrGuEvar2woD;k,n;cerDmar58znets5;a,o2G;aDem0i30yeziu;sni3QvD;ch3V;bay4Frh0Jsk0TvaFwalDzl5;czDsA;yk;cFlD;!cDen3R;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,lloe,minsArEstra32to,ur,yDzl5;a,s0;j0GlsC;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:98;1:84;2:81;3:8Z;4:8T;5:6H;6:85;7:89;8:8U;9:8G;A:5Z;a7Qb7Ac6Sd6Ae5Sf5Ag52h4Ri3Tjuni46k3Rl3Gm34n2Uo2Fp1Wquart66r1Ls0Rt0JuMvIwBye1J;ast56eFholeEiDoB;man5oBrthwhi6u0F;d7Lzy;despr8Is6H;!sa6;ather13eBll o5Lste2R;!k5;aDeCiBola5F;b98ce versa,gi2R;ng4Xrsa5D;ca0lu56;lt06nHpDrCsBttermo90;ef79u4;b6Age0; Db2BpCsBti37;ca6et,ide dO;er,i4N;f3Vto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4G;e73i2GoDpCuB;pervis1spect2;e0ok71;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6S;mploy1nd2xpect1;eBue;cid1rB;!a6VcovAly2sDwB;aBei2L;tAy;iz1to45;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Ira;aGeDhough5Cip 1QoCrB;anspa72i3;gethAle86rp9;ena6JmpCrB;r3Htia6T;e8o6R;leBst3S;nt1;a03c01eZhYiWkiVmug,nobb41oPpMqueam41tGuBymb73;bDi generis,pBr5;erBre1P;! dupAb,viX;du1sBurb53;eq76tanda7S;atu6DeFi0VrByl3V;aBin4G;ightBy; fBfB;or61;adfa7Kri6;arCeBirit1lend9ot on;c30e36;k5se; caGlub6mbAphisticFrEuCvB;erei5Miet;ndBth0Y;pro6I;d9ry;at1;ll1;g1YnB;ce5Bg6;am32eA;at1co1Jem5lf3CnBre7;so5Z;ath2holBient2M;ar5;cr1me,tisfac5Q;aJeEheumato9iCoB;bu70tt5Cy4;ghtBv4;-w2f58;bZcEdu6RlDnown1sBtard1;is3FoB;lu3na0;e1Duc3D;e0ondi3;b9ciB;al,st;aOeMicayu7laLopuli6QrCuB;bl5Ynjabi;eGiEoB;!b2SfCmi3EpBv4Zxi21;er,ort63;a7u66;maBor,sti7va3;!ry;ci63exist2mBpa9;a1QiB;er,um;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8H;2:9C;3:90;4:81;5:7O;6:98;7:83;8:9F;9:91;A:9G;B:8W;C:7V;D:7R;E:7L;F:88;a81b7Ec6Od5Ge4Ef44g40h3Wi3Cj39k36l2Xm2Qnou3Vo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7CthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7IlGplug,tie,ve84;ea8o3K;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Fmp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7M;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all70e2EiG;m,ng;bIccumb,ffHggeBmm90p2FrG;mouFvi2;er,i3;li7Zmer9siGveD;de,st;aKe7SiIrG;ang4eGi2;ng20w;fGnW;f5le;gg0rG;t4ve;a3Ri8;awn,eJiIlHoGri6A;il,of;ay,it;ll,t;ak,nd;lGot6Lw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5EoHriGun;nk,v5Q;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis17y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq30sLtJvG;amp,eHiGo2P;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1VrG;a5TiCuctu7;de,gn,st;el,hra1lGreseF;a3e66;d0ew,o02;a5Oe2Vo2;a6eFiGoad,y;e2nq3Fve;mbur1nf2O;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3IoGyc4;gni57nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Nit,o6;aUerSiRlumm0UoQrIuG;b3Jke,ni8rGt;poDs6S;eKoG;cId,fe33hibEnoHpo1sp0truAvG;e,iAo4R;un3;la34u7;a5Ec1NdHf0ocSsup0EvG;a5JeF;etermi41iC;a5Brt4T;er3npoiF;cei2fo3Bi8mea6plex,sGvaA;eve7iB;mp0n13rGtrol,ve,y;a5Pt5L;bser2cJpIutHverGwe;lap,s15tu65u1;gr4Mnu1Wpa3;era6i3Rpo1;cupy;aLe08iHoGultiply;leBu60;micInHsG;pla3s;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o43uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5OvG;eGo0N;nt,st;erHimi5LoxiOrG;odu3uA;aCn,prGru5L;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b57mer1pG;aDer44ly,oHrG;is5Io2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4O;ast5er3Ji54lOorJrHuG;lf3Rr3N;ee2ZolG;ic;b3CeIfeEgGs4A;eGi2;!t;clo1go,sGwa4G;had2X;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3CvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4F;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4K;er,i3rG;a2Jen2XuB;e,re;i2Vol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ly3Y;b4ct;bHer9pG;hasi1Xow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Ode;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi29sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3GsKtG;iGoDu2W;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a17e2WlJoHuG;ss;uGv0;ra9;aGo1;im;a37ur1;af5bXcRduCep5fPliOmLnJpIra1Uta1OvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Tpo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta18;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Iin24ribu6;er2iGoli26pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aZeTiSlPoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeKed;ke;il,l11mbaGrrNth0;rd;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b13c0Rd0Iffix,gr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Fi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Oa="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ba=Oa.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Va=function(e){if(void 0!==Ba[e])return Ba[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var za=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e},{}),n={};return Object.keys(t).forEach((function(e){const r=Fa(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Sa(Ca[e]);La.test(e)?Object.keys(t).forEach(t=>{if(qa[t]=e,"Noun|Verb"===e){let e=Wa(t,Ka);qa[e]="Plural|Verb"}}):Object.keys(t).forEach(t=>{Ja[t]=e})}),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Ja[e]="Emoticon"),delete Ja[""],delete Ja.null,delete Ja[" "];const Ua="Adjective";var Ra={beforeTags:{Determiner:Ua,Possessive:Ua},afterTags:{Adjective:Ua},beforeWords:{seem:Ua,seemed:Ua,seems:Ua,feel:Ua,feels:Ua,felt:Ua,appear:Ua,appears:Ua,appeared:Ua,also:Ua,over:Ua,under:Ua,too:Ua,it:Ua,but:Ua,still:Ua,really:Ua,quite:Ua,well:Ua,very:Ua,deeply:Ua,profoundly:Ua,extremely:Ua,so:Ua,badly:Ua,mostly:Ua,totally:Ua,awfully:Ua,rather:Ua,nothing:Ua,something:Ua,anything:Ua,not:Ua,me:Ua},afterWords:{too:Ua,also:Ua,or:Ua}};const _a="Gerund";var Qa={beforeTags:{Adverb:_a,Preposition:_a,Conjunction:_a},afterTags:{Adverb:_a,Possessive:_a,Person:_a,Pronoun:_a,Determiner:_a,Copula:_a,Preposition:_a,Conjunction:_a,Comparative:_a},beforeWords:{been:_a,keep:_a,continue:_a,stop:_a,am:_a,be:_a,me:_a,began:_a,start:_a,starts:_a,started:_a,stops:_a,stopped:_a,help:_a,helps:_a,avoid:_a,avoids:_a,love:_a,loves:_a,loved:_a,hate:_a,hates:_a,hated:_a},afterWords:{you:_a,me:_a,her:_a,him:_a,them:_a,their:_a,it:_a,this:_a,there:_a,on:_a,about:_a,for:_a}};var Za={beforeTags:Object.assign({},Ra.beforeTags,Qa.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ra.afterTags,Qa.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ra.beforeWords,Qa.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ra.afterWords,Qa.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ya="Singular";var Xa={beforeTags:{Determiner:Ya,Possessive:Ya,Acronym:Ya,Noun:Ya,Adjective:Ya,PresentTense:Ya,Gerund:Ya,PastTense:Ya,Infinitive:Ya,Date:Ya},afterTags:{Value:Ya,Modal:Ya,Copula:Ya,PresentTense:Ya,PastTense:Ya,Demonym:Ya},beforeWords:{the:Ya,with:Ya,without:Ya,of:Ya,for:Ya,any:Ya,all:Ya,on:Ya,cut:Ya,cuts:Ya,save:Ya,saved:Ya,saves:Ya,make:Ya,makes:Ya,made:Ya,minus:Ya,plus:Ya,than:Ya,another:Ya,versus:Ya,neither:Ya,favorite:Ya,best:Ya,daily:Ya,weekly:Ya,linear:Ya,binary:Ya,mobile:Ya,lexical:Ya,technical:Ya,computer:Ya,scientific:Ya,formal:Ya},afterWords:{of:Ya,system:Ya,aid:Ya,method:Ya,utility:Ya,tool:Ya,reform:Ya,therapy:Ya,philosophy:Ya,room:Ya,authority:Ya,says:Ya,said:Ya,wants:Ya,wanted:Ya}};const eo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var to={beforeTags:Object.assign({},Ra.beforeTags,Xa.beforeTags,eo.beforeTags),afterTags:Object.assign({},Ra.afterTags,Xa.afterTags),beforeWords:Object.assign({},Ra.beforeWords,Xa.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ra.afterWords,Xa.afterWords)};const no={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},ao={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},oo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var io={beforeTags:Object.assign({},Ra.beforeTags,no),afterTags:Object.assign({},Ra.afterTags,ro),beforeWords:Object.assign({},Ra.beforeWords,ao),afterWords:Object.assign({},Ra.afterWords,oo)};const so="Infinitive";var lo={beforeTags:{Modal:so,Adverb:so,Negative:so,Plural:so},afterTags:{Determiner:so,Adverb:so,Possessive:so,Preposition:so},beforeWords:{i:so,we:so,you:so,they:so,to:so,please:so,will:so,have:so,had:so,would:so,could:so,should:so,do:so,did:so,does:so,can:so,must:so,us:so,me:so,he:so,she:so,it:so,being:so},afterWords:{the:so,me:so,you:so,him:so,her:so,them:so,it:so,a:so,an:so,up:so,down:so,by:so,out:so,off:so,under:so,when:so,all:so,to:so,because:so,although:so,before:so,how:so,otherwise:so,together:so,though:so,yet:so}};const uo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var co={beforeTags:Object.assign({},Ra.beforeTags,lo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ra.afterTags,lo.afterTags,uo.afterTags),beforeWords:Object.assign({},Ra.beforeWords,lo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ra.afterWords,lo.afterWords,{to:void 0})};const ho={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},mo={},po={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},go={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var fo={beforeTags:Object.assign({},Qa.beforeTags,Xa.beforeTags,ho),afterTags:Object.assign({},Qa.afterTags,Xa.afterTags,mo),beforeWords:Object.assign({},Qa.beforeWords,Xa.beforeWords,po),afterWords:Object.assign({},Qa.afterWords,Xa.afterWords,go)};var vo={beforeTags:Object.assign({},lo.beforeTags,Xa.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},lo.afterTags,Xa.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},lo.beforeWords,Xa.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},lo.afterWords,Xa.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const bo="Person";var yo={beforeTags:{Honorific:bo,Person:bo,Preposition:bo},afterTags:{Person:bo,ProperNoun:bo,Verb:bo},ownTags:{ProperNoun:bo},beforeWords:{hi:bo,hey:bo,yo:bo,dear:bo,hello:bo},afterWords:{said:bo,says:bo,told:bo,tells:bo,feels:bo,felt:bo,seems:bo,thinks:bo,thought:bo,spends:bo,spendt:bo,plays:bo,played:bo,sing:bo,sang:bo,learn:bo,learned:bo,wants:bo,wanted:bo}};const wo="Month",ko={beforeTags:{Date:wo,Value:wo},afterTags:{Date:wo,Value:wo},beforeWords:{by:wo,in:wo,on:wo,during:wo,after:wo,before:wo,between:wo,until:wo,til:wo,sometime:wo,of:wo,this:wo,next:wo,last:wo,previous:wo,following:wo},afterWords:{sometime:wo,in:wo,of:wo,until:wo,the:wo}};var Po={beforeTags:Object.assign({},yo.beforeTags,ko.beforeTags),afterTags:Object.assign({},yo.afterTags,ko.afterTags),beforeWords:Object.assign({},yo.beforeWords,ko.beforeWords),afterWords:Object.assign({},yo.afterWords,ko.afterWords)};const Ao={Place:"Place"},jo={Place:"Place",Abbreviation:"Place"},No={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},Eo={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let xo="Unit";const Io={"Adj|Gerund":Za,"Adj|Noun":to,"Adj|Past":io,"Adj|Present":co,"Noun|Verb":vo,"Noun|Gerund":fo,"Person|Noun":{beforeTags:Object.assign({},Xa.beforeTags,yo.beforeTags),afterTags:Object.assign({},Xa.afterTags,yo.afterTags),beforeWords:Object.assign({},Xa.beforeWords,yo.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Xa.afterWords,yo.afterWords)},"Person|Date":Po,"Person|Verb":{beforeTags:Object.assign({},yo.beforeTags,lo.beforeTags),afterTags:Object.assign({},yo.afterTags,lo.afterTags),beforeWords:Object.assign({},yo.beforeWords,lo.beforeWords),afterWords:Object.assign({},yo.afterWords,lo.afterWords)},"Person|Place":{beforeTags:Object.assign({},Ao,yo.beforeTags),afterTags:Object.assign({},jo,yo.afterTags),beforeWords:Object.assign({},No,yo.beforeWords),afterWords:Object.assign({},Eo,yo.afterWords)},"Unit|Noun":{beforeTags:{Value:xo},afterTags:{},beforeWords:{per:xo,every:xo,each:xo,square:xo,cubic:xo,sq:xo,metric:xo},afterWords:{per:xo,squared:xo,cubed:xo,long:xo}}},Go=(e,t)=>{let n=Object.keys(e).reduce((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t),{});return Object.assign(n,t)};Io["Plural|Verb"]={beforeWords:Go(Io["Noun|Verb"].beforeWords,{}),afterWords:Go(Io["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Go(Io["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Go(Io["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var To=Io;const Do="Adjective",Co="Infinitive",Oo="PresentTense",Bo="Singular",Vo="PastTense",zo="Adverb",$o="Plural",Fo="Verb",So="LastName",Ho="Participle";var Mo=[null,null,{ea:Bo,ia:"Noun",ic:Do,ly:zo,"'n":Fo,"'t":Fo},{oed:Vo,ued:Vo,xed:Vo," so":zo,"'ll":"Modal","'re":"Copula",azy:Do,eer:"Noun",end:Fo,ped:Vo,ffy:Do,ify:Co,ing:"Gerund",ize:Co,ibe:Co,lar:Do,mum:Do,nes:Oo,nny:Do,ous:Do,que:Do,rol:Bo,sis:Bo,ogy:Bo,oid:Bo,ian:Bo,zes:Oo,eld:Vo,ken:Ho,ven:Ho,ten:Ho,ect:Co,ict:Co,ign:Co,ful:Do,bal:Do},{amed:Vo,aped:Vo,ched:Vo,lked:Vo,rked:Vo,reed:Vo,nded:Vo,mned:Do,cted:Vo,dged:Vo,ield:Bo,akis:So,cede:Co,chuk:So,czyk:So,ects:Oo,ends:Fo,enko:So,ette:Bo,wner:Bo,fies:Oo,fore:zo,gate:Co,gone:Do,ices:$o,ints:$o,ruct:Co,ines:$o,ions:$o,less:Do,llen:Do,made:Do,nsen:So,oses:Oo,ould:"Modal",some:Do,sson:So,tion:Bo,tage:"Noun",ique:Bo,tive:Do,tors:"Noun",vice:Bo,lier:Bo,fier:Bo,wned:Vo,gent:Bo,tist:Bo,pist:Bo,rist:Bo,mist:Bo,yist:Bo,vist:Bo,lite:Bo,site:Bo,rite:Bo,mite:Bo,bite:Bo,mate:Bo,date:Bo,ndal:Bo,vent:Bo,uist:Bo,gist:Bo,note:Bo,cide:Bo,wide:Do,vide:Co,ract:Co,duce:Co,pose:Co,eive:Co,lyze:Co,lyse:Co,iant:Do,nary:Do},{elist:Bo,holic:Bo,phite:Bo,tized:Vo,urned:Vo,eased:Vo,ances:$o,bound:Do,ettes:$o,fully:zo,ishes:Oo,ities:$o,marek:So,nssen:So,ology:"Noun",osome:Bo,tment:Bo,ports:$o,rough:Do,tches:Oo,tieth:"Ordinal",tures:$o,wards:zo,where:zo,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Bo,scent:Bo,onist:Bo,anist:Bo,alist:Bo,olist:Bo,icist:Bo,ounce:Co,iable:Do,borne:Do,gnant:Do,inant:Do,igent:Do,atory:Do,rient:Bo,dient:Bo},{auskas:So,parent:Bo,cedent:Bo,ionary:Bo,cklist:Bo,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:So,borough:"Place",sdottir:So}];const Wo="Adjective";var Lo=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Wo,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Wo,tele:"Noun","pro-":Wo,"mis-":"Verb","dis-":"Verb","pre-":Wo},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Wo,radio:"Noun",tetra:"Noun","omni-":Wo,"post-":Wo},{pseudo:Wo,"extra-":Wo,"hyper-":Wo,"inter-":Wo,"intra-":Wo,"deca-":Wo},{electro:"Noun"}];const Jo="Adjective",qo="Infinitive",Ko="PresentTense",Uo="Singular",Ro="PastTense",_o="Expression",Qo="LastName";var Zo={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Qo],[/.[^aeiou]ica$/,Uo,"harmonica"],[/^([hyj]a+)+$/,_o,"haha"]],c:[[/.[^aeiou]ic$/,Jo]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ro,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ro,"rammed"],[/.[aeiou][sg]hed$/,Ro,"gushed"],[/.[aeiou]red$/,Ro,"hired"],[/.[aeiou]r?ried$/,Ro,"hurried"],[/[^aeiou]ard$/,Uo,"steward"],[/[aeiou][^aeiou]id$/,Jo,""],[/.[vrl]id$/,Jo,"livid"],[/..led$/,Ro,"hurled"],[/.[iao]sed$/,Ro,""],[/[aeiou]n?[cs]ed$/,Ro,""],[/[aeiou][rl]?[mnf]ed$/,Ro,""],[/[aeiou][ns]?c?ked$/,Ro,"bunked"],[/[aeiou]gned$/,Ro],[/[aeiou][nl]?ged$/,Ro],[/.[tdbwxyz]ed$/,Ro],[/[^aeiou][aeiou][tvx]ed$/,Ro],[/.[cdflmnprstv]ied$/,Ro,"emptied"]],e:[[/.[lnr]ize$/,qo,"antagonize"],[/.[^aeiou]ise$/,qo,"antagonise"],[/.[aeiou]te$/,qo,"bite"],[/.[^aeiou][ai]ble$/,Jo,"fixable"],[/.[^aeiou]eable$/,Jo,"maleable"],[/.[ts]ive$/,Jo,"festive"],[/[a-z]-like$/,Jo,"woman-like"]],h:[[/.[^aeiouf]ish$/,Jo,"cornish"],[/.v[iy]ch$/,Qo,"..ovich"],[/^ug?h+$/,_o,"ughh"],[/^uh[ -]?oh$/,_o,"uhoh"],[/[a-z]-ish$/,Jo,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Qo,"polish-male"]],k:[[/^(k){2}$/,_o,"kkkk"]],l:[[/.[gl]ial$/,Jo,"familial"],[/.[^aeiou]ful$/,Jo,"fitful"],[/.[nrtumcd]al$/,Jo,"natal"],[/.[^aeiou][ei]al$/,Jo,"familial"]],m:[[/.[^aeiou]ium$/,Uo,"magnesium"],[/[^aeiou]ism$/,Uo,"schism"],[/^[hu]m+$/,_o,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Jo,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,_o,"noooo"],[/^(yo)+$/,_o,"yoo"],[/^wo{2,}[pt]?$/,_o,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Uo],[/[^i]fer$/,qo],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Jo],[/[aeiou].*ist$/,Jo],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Ko],[/.[rln]ates$/,Ko],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Uo],[/.[aeiou]sks$/,Ko],[/.[aeiou]kes$/,Ko],[/[aeiou][^aeiou]is$/,Uo],[/[a-z]'s$/,"Noun"],[/^yes+$/,_o]],v:[[/.[^aeiou][ai][kln]ov$/,Qo]],y:[[/.[cts]hy$/,Jo],[/.[st]ty$/,Jo],[/.[tnl]ary$/,Jo],[/.[oe]ry$/,Uo],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Jo],[/...lly$/,"Adverb"],[/.[gk]y$/,Jo],[/[bszmp]{2}y$/,Jo],[/.[ai]my$/,Jo],[/[ea]{2}zy$/,Jo],[/.[^aeiou]ity$/,Uo]]};const Yo="Verb",Xo="Noun";var ei={leftTags:[["Adjective",Xo],["Possessive",Xo],["Determiner",Xo],["Adverb",Yo],["Pronoun",Yo],["Value",Xo],["Ordinal",Xo],["Modal",Yo],["Superlative",Xo],["Demonym",Xo],["Honorific","Person"]],leftWords:[["i",Yo],["first",Xo],["it",Yo],["there",Yo],["not",Yo],["because",Xo],["if",Xo],["but",Xo],["who",Yo],["this",Xo],["his",Xo],["when",Xo],["you",Yo],["very","Adjective"],["old",Xo],["never",Yo],["before",Xo],["a","Singular"],["the",Xo],["been",Yo]],rightTags:[["Copula",Xo],["PastTense",Xo],["Conjunction",Xo],["Modal",Xo]],rightWords:[["there",Yo],["me",Yo],["man","Adjective"],["only",Yo],["him",Yo],["it",Yo],["were",Xo],["took",Xo],["himself",Yo],["went",Xo],["who",Xo],["jr","Person"]]},ti={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ni={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ri={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ai={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},oi={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ii=/^.([0-9]+)/;var si=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ii);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ii,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)}),t},ui=/^([0-9]+)/,ci=function(e){const t=/\|/;return e.split(/,/).map(e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ui);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ui,"")]}(n[0],n[1])})};var hi=function(e={}){return(e=Object.assign({},e)).rules=ci(e.rules),e.rules=li(e.rules),e.rev&&(e.rev=ci(e.rev),e.rev=li(e.rev)),e.exceptions=ci(e.exceptions),e.exceptions=e.exceptions.reduce((e,t)=>(e[t[0]]=t[1],e),{}),e};var di=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce((e,t)=>(e[t[1]]=t[0],e),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const mi=hi({rules:"een|1,egan|2in,on|in,pun|1in,hun|3ned,wn|1,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,ollide|6d,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,lodded|3,eterred|4,hoked|4,kidded|3,rod|3ded,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,mmed|1,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,nned|1,ued|2,iled|2,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,ulfil|5led,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,lew|1y,utgrow|4ew,drew|2aw,saw|1ee,ew|ow,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,lam|3med",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,grew|2ow,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,flew|2y,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,blown|4,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,tun|3ned,hin|3ned,pan|3ned,can|3ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,lide|3,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,utgrew|4ow,draw|2ew,throw|3ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,lod|3ded,kid|3ded,ollided|6,lammed|3,hunned|3,rodded|3,lfilled|4,build|4t,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),pi=hi(ai),gi=hi(ni),fi=hi(ri),vi=di(mi),bi=di(pi),yi=di(gi),wi=di(fi),ki=hi(ti),Pi=hi(oi);var Ai={fromPast:mi,fromPresent:pi,fromGerund:gi,fromParticiple:fi,toPast:vi,toPresent:bi,toGerund:yi,toParticiple:wi,toComparative:ki,toSuperlative:Pi,fromComparative:di(ki),fromSuperlative:di(Pi)},ji=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce((e,t)=>(e[t]=!0,e),{}),Ni=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var Ei=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce((e,t)=>(e[a[t]]=t,e),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(xi[t].forEach(n=>e[n]=t),e),{});var Ii=xi;var Gi=function(e){let t=e.substring(e.length-3);if(!0===Ii.hasOwnProperty(t))return Ii[t];let n=e.substring(e.length-2);return!0===Ii.hasOwnProperty(n)?Ii[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ti={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Di=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Gi(e)),Ti.hasOwnProperty(e))c=Ti[e];else if("Participle"===n)c=si(l,i);else if("PastTense"===n)c=si(l,r);else if("PresentTense"===n)c=si(l,a);else{if("Gerund"!==n)return e;c=si(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Ci=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:si(i,n),PresentTense:si(i,r),Gerund:si(i,a),FutureTense:"will "+e},u=si(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach(e=>{l[e]+=" "+s}),l};var Oi=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Bi="ically",Vi=new Set(["analyt"+Bi,"chem"+Bi,"class"+Bi,"clin"+Bi,"crit"+Bi,"ecolog"+Bi,"electr"+Bi,"empir"+Bi,"frant"+Bi,"grammat"+Bi,"ident"+Bi,"ideolog"+Bi,"log"+Bi,"mag"+Bi,"mathemat"+Bi,"mechan"+Bi,"med"+Bi,"method"+Bi,"method"+Bi,"mus"+Bi,"phys"+Bi,"phys"+Bi,"polit"+Bi,"pract"+Bi,"rad"+Bi,"satir"+Bi,"statist"+Bi,"techn"+Bi,"technolog"+Bi,"theoret"+Bi,"typ"+Bi,"vert"+Bi,"whims"+Bi]),zi=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],$i=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Fi={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Si=function(e){return e.endsWith("ly")?Vi.has(e)?e.replace(/ically/,"ical"):$i.has(e)?null:Fi.hasOwnProperty(e)?Fi[e]:Oi(e,zi)||e:null};const Hi=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Mi={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Wi=function(e){if(Mi.hasOwnProperty(e))return Mi[e];let t=Oi(e,Hi);return t||e+"ly"};const Li=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ji={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},qi=new Set(["terrible","annoying"]);const Ki=function(e,t){const n=t.two.models.toSuperlative;return si(e,n)},Ui=function(e,t){const n=t.two.models.toComparative;return si(e,n)};var Ri={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach(e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])})},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach(e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]})},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var _i={two:{quickSplit:function(e){const t=/[,:;]/;let n=[];return e.forEach(e=>{let r=0;e.forEach((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)}),r{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ri.hasOwnProperty(i)&&Ri[i](t,a,n,r),a[t]=a[t]||i}),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},transform:{nounToPlural:Wa,nounToSingular:Ei,verbToInfinitive:Di,getTense:Gi,verbConjugate:Ci,adjToSuperlative:Ki,adjToComparative:Ui,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return si(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return si(e,n)},advToAdjective:Si,adjToAdverb:Wi,adjToNoun:function(e){if(Ji.hasOwnProperty(e))return Ji[e];if(qi.has(e))return null;let t=Oi(e,Li);return t||e+"ness"}}}};var Qi=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach(e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"}),e};const Zi=function(e,t,n){return Object.entries(e.exceptions).reduce((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e),{})};var Yi=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zi(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zi(r,"Infinitive","Verb"),Object.assign(s,l),l=Zi(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zi(o,"Adjective","Superlative"),Object.assign(s,l),l=Zi(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xi={two:{models:Ai}};const es={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun"},ts=function(e,t){const n={model:t,methods:_i};let{lex:r,_multi:a}=_i.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ns=function(e,t,n){let r=Ci(e,Xi);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach(a=>{const o=e[a];if(n[a]=es[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ns(a,r,!1),"Adj|Present"===o&&(ns(a,r,!0),function(e,t,n){let r=Ki(e,n);t[r]=t[r]||"Superlative";let a=Ui(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Di(a,Xi,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Di(a,Xi,"PastTense");r[e]||(n[e]="Infinitive")}}),t=ts(n,t)};let as={one:{_multiCache:{},lexicon:Ja},two:{irregularPlurals:Da,models:Ai,suffixPatterns:Mo,prefixPatterns:Lo,endsWith:Zo,neighbours:ei,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/[0-9]{1,4}$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:qa,clues:To,uncountable:{},orgWords:ji}};as=function(e){return e=function(e,t){return Object.keys(e).forEach(n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")}),t}((e=ts(e.one.lexicon,e)).one.lexicon,e),e=rs(e.two.switches,e),e=Yi(e),e=Qi(e)}(as);var os=as;const is=/^(under|over|mis|re|un|dis|semi)-?/;var ss=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(is.test(a.normal)){let e=a.normal.replace(is,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ls=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach(t=>e.tags.add(t))};const us={e:["mice","louse","antennae","formulae","nebulae","vertebrae","vitae"],i:["tia","octopi","viri","radii","nuclei","fungi","cacti","stimuli"],n:["men"],t:["feet"]},cs=new Set(["formulas","koalas","israelis","menus"]),hs=["bus","mas","was","las","ias","xas","vas","cis","lis","nis","ois","ris","sis","tis","xis","aus","cus","eus","fus","gus","ius","lus","nus","ous","pus","rus","sus","tus","xus","'s","ss"];var ds=function(e){if(!e||e.length<=3)return!1;if(cs.has(e))return!0;let t=e[e.length-1];return us.hasOwnProperty(t)?us[t].find(t=>e.endsWith(t)):"s"===t&&!hs.find(t=>e.endsWith(t))};const ms=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ps=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t))||(ds(e.normal)?ls(e,"Plural","3-plural-guess"):ls(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Gi(e.normal);t&&ls(e,t,"3-verb-tense-guess")}}(r)};const gs=/^\p{Lu}[\p{Ll}'’]/u,fs=/[0-9]/,vs=["Date","Month","WeekDay","Unit"],bs=/^[IVXLCDM]{2,}$/,ys=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,ws={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ks=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===gs.test(o)&&!1===fs.test(o)?vs.find(e=>r.tags.has(e))?null:(ps(e,t,n),r.tags.has("Noun")||r.tags.clear(),ls(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&bs.test(o)&&ys.test(o)&&!ws[r.normal]?(ls(r,"RomanNumeral","2-xvii"),!0):null};const Ps=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var As=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Ps(r.normal,n.two.suffixPatterns);if(null!==e)return ls(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Ps(r.implicit,n.two.suffixPatterns),null!==e))return ls(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const js=/['‘’‛‵′`´]/,Ns=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ls(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Is=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Gs=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Is.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Ts=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Ds=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Cs=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Gs(a)||Gs(o))return ls(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Ts(a)||Ts(o))return ls(n,"Year","2-tagYear-close");if(Ds(e[t-2])||Ds(e[t+2]))return ls(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ls(n,"Year","2-tagYear-noun")}}}return null};const Os=/^[A-Z]('s|,)?$/,Bs=/^[A-Z-]+$/,Vs=/([A-Z]\.)+[A-Z]?,?$/,zs=/[A-Z]{2,}('s|,)?$/,$s=/([a-z]\.)+[a-z]\.?$/,Fs={I:!0,A:!0};var Ss=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Bs.test(n)||n.length>5||Fs.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Vs.test(n)&&!0!==$s.test(n)&&!0!==Os.test(n)&&!0!==zs.test(n))}(r,n)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Fs.hasOwnProperty(r.text)&&Os.test(r.text)?(r.tags.clear(),ls(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ls(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Bs.test(r.text)&&r.text.length<=6?(ls(r,"Acronym","3-titlecase-acronym"),!0):null};const Hs=function(e,t){if(!e)return null;let n=t.find(t=>e.normal===t[0]);return n?n[1]:null},Ms=function(e,t){if(!e)return null;let n=t.find(t=>e.tags.has(t[0]));return n?n[1]:null};var Ws=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Hs(e[t-1],a),l=l||Hs(e[t+1],o),l=l||Ms(e[t-1],r),l=l||Ms(e[t+1],i),l)return ls(s,l,"3-[neighbour]"),ps(e,t,n),e[t].confidence=.2,!0}return null};const Ls=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Js=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ls(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ls(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var qs=function(e,t,n){0===e[t].tags.size&&(ls(e[t],"Noun","3-[fallback]"),ps(e,t,n),e[t].confidence=.1)};const Ks=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Us=(e,t,n)=>0!==t||e[1]?null:n;var Rs={"Adj|Gerund":(e,t)=>Ks(e,t),"Adj|Noun":(e,t)=>Ks(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Ks(e,t),"Adj|Present":(e,t)=>Ks(e,t),"Noun|Gerund":(e,t)=>Ks(e,t),"Noun|Verb":(e,t)=>Ks(e,t)||Us(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ks(e,t)||Us(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ks(e,t),"Person|Verb":(e,t)=>0!==t&&Ks(e,t)};const _s="undefined"!=typeof process&&process.env?process.env:self.env||{},Qs=/^(under|over|mis|re|un|dis|semi)-?/,Zs=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit;const r=t[n];return r&&_s.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ys=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1).find(e=>t[e]);return r&&_s.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};const Xs={tagSwitch:ss,checkSuffix:As,checkRegex:Es,checkCase:ks,checkPrefix:xs,checkHyphen:function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ls(o,"Verb","3-[prefix]"),ls(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ls(o,"Adjective","3-[prefix]"),ls(o,"Prefix","3-[prefix]")))},checkYear:Cs},el={checkAcronym:Ss,neighbours:Ws,orgWords:Js,nounFallback:qs,switches:function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Qs.test(l)&&!o[l]&&(l=l.replace(Qs,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Zs(e[t+1],n.afterWords);return o=o||Zs(e[t-1],n.beforeWords),o=o||Ys(e[t-1],n.beforeTags,a),o=o||Ys(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Rs[o]&&(u=Rs[o](e,t)||u),u?(a([s],u,n,null,`3-[variable] (${o})`),ps(e,t,r)):_s.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}}},tl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};const al={Adverb:"RB",Comparative:"JJR",Superlative:"JJS",Adjective:"JJ",TO:"Conjunction",Modal:"MD",Auxiliary:"MD",Gerund:"VBG",PastTense:"VBD",Participle:"VBN",PresentTense:"VBZ",Infinitive:"VB",Particle:"RP",Verb:"VB",Pronoun:"PRP",Cardinal:"CD",Conjunction:"CC",Determiner:"DT",Preposition:"IN",QuestionWord:"WP",Expression:"UH",Possessive:"POS",ProperNoun:"NNP",Person:"NNP",Place:"NNP",Organization:"NNP",Singular:"NNP",Plural:"NNS",Noun:"NN"};var ol={preTagger:function(e){const{methods:t,model:n,world:r}=e;let a=t.two.quickSplit(e.docs);for(let e=0;e{for(let r=0;r{e.forEach(e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""});for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e)))[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fl=/'/;var vl=function(e,t){let n=e[t].normal.split(fl)[0];if(((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const bl=/'/;var yl=function(e,t){let n=e[t].normal.split(bl)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some(e=>e.tags.has("PastTense")))(e,t)?[n,"had"]:[n,"would"]};var wl=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const kl={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Pl={in:!0,by:!0,for:!0};var Al=(e,t)=>{let n=e[t];if(kl.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Pl[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const jl=/'/,Nl=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach((e,t)=>{e.index&&(e.index[1]=t)})}(e)},El={d:(e,t)=>yl(e,t),t:(e,t)=>wl(e,t),s:(e,t,n)=>Al(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):vl(e,t)},xl=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Il={compute:{contractionTwo:e=>{let{world:t,document:n}=e;n.forEach((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===jl.test(r[o].normal)&&([,i]=r[o].normal.split(jl));let s=null;El.hasOwnProperty(i)&&(s=El[i](r,o,t)),s&&(s=xl(s,e),gl(n,[a,o],s),Nl(n[a],e,o,s.length))}})}},api:function(e){class Contractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Contraction"}expand(){return this.docs.forEach(e=>{let t=pl.test(e[0].text);e.forEach((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase())}(e[0].text))}),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ml},hooks:["contractionTwo"]};const Gl="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Tl=["i","we","they"];let Dl=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were|was) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"[(1st|2nd|first|second)] #Honorific",group:0,tag:"Honorific",reason:"ordinal-honorific"},{match:"[(private|general|major|corporal|lord|lady|secretary|premier)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(lady|queen|sister|king|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"#ProperNoun [#Honorific]",group:0,tag:"Person",reason:"last-sr"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:["Honorific","Person"],reason:"his-excellency"},{match:"#Honorific #Person",tag:"Person",reason:"honorific-person"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:Gl+" #Person",tag:"Person",reason:"randy-smith"},{match:Gl+" #Acronym? #ProperNoun",tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Gl}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Tl,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Tl,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Tl,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Cl=null;var Ol={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach(n=>{n.forEach(n=>{t+=1,e+=n.confidence||1})}),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:{postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Cl=Cl||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map(e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]}),o=e.update(a);return o.cache(),o.sweep(Cl),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])},model:{two:{matches:Dl}},hooks:["postTagger"]};var Bl=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))};var Vl={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Bl(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};var zl=function(e,t){let n=t;e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)};var $l=function(e,t,n){let r=this.match(`{${e}}`);return n&&(r=r.if(n)),r.has("#Verb")?zl(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):this};var Fl={api:function(e){e.prototype.swap=$l}};P.plugin(cl),P.plugin(Il),P.plugin(Ol),P.plugin(Vl),P.plugin(Fl);var Sl=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter(e=>e.wordCount()>5&&e.match("#Verb+").length>=2);if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Hl=function(){let e=[],t=null,n=null;this.docs.forEach(r=>{r.forEach(r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])})}),t&&e.push(t);let r=this.update(e);return r=r.map(e=>e.has("")?e.nouns():e),r};const Ml={this:"Noun",then:"Pivot"};var Wl=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){e.terms.find(e=>e.tags.has("Verb"))||e.terms.forEach(e=>e.chunk=null)}})};var Ql={compute:{chunks:function(e){const{document:t,world:n}=e;Wl(t),Ll(t),Kl(e,t,n),Rl(t),_l(t)}},api:function(e){e.prototype.chunks=Hl,e.prototype.clauses=Sl},hooks:["chunks"]};const Zl=/'s$/;var Yl=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(Zl,""),e.normal=e.normal.replace(Zl,"")})}),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const Xl=/\(/,eu=/\)/,tu=function(e,t){for(;t{e[0].pre=e[0].pre.replace(Xl,"");let t=e[e.length-1];t.post=t.post.replace(eu,"")}),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const ru={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},au=RegExp("("+Object.keys(ru).join("|")+")"),ou=RegExp("("+Object.values(ru).join("|")+")"),iu=function(e,t){const n=e[t].pre.match(au)[0]||"";if(!n||!ru[n])return null;const r=ru[n];for(;t{e[0].pre=e[0].pre.replace(au,"");let t=e[e.length-1];t.post=t.post.replace(ou,"")})}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach(e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const lu=/\./g;var uu=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,"")})}),this}addPeriods(){return this.docs.forEach(e=>{e.forEach(e=>{e.text=e.text.replace(lu,""),e.normal=e.normal.replace(lu,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."})}),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var cu=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map(n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r},[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const hu=(e,t)=>"number"==typeof t?e.eq(t):e,du=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var mu=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map(o=>{let i=o.toView().json(e)[0]||{},s=du(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i},[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return hu(this,e).map(e=>{let n=du(e),r=t(n,this.model);return e.replaceWith(r)})}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=hu(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=hu(t,e),new Adjectives(t.document,t.pointer)}};const pu=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},gu=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let fu=[["emojis","emoji"],["atmentions","atMentions"]];var vu=function(e){gu.forEach(t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}}),e.prototype.phoneNumbers=pu,fu.forEach(t=>{e.prototype[t[0]]=e.prototype[t[1]]})},bu={api:function(e){vu(e),Yl(e),nu(e),su(e),mu(e),cu(e),uu(e)}};const yu=function(e,t){e.docs.forEach(e=>{e.forEach(t)})};var wu={case:e=>{yu(e,e=>{e.text=e.text.toLowerCase()})},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;yu(e,e=>e.text=n(e.text,t))},whitespace:e=>{yu(e,e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")})},punctuation:e=>{yu(e,e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")});let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const ku=e=>e.split("|").reduce((e,t)=>(e[t]=!0,e),{}),Pu="unicode|punctuation|whitespace|acronyms",Au="|case|contractions|parentheses|quotations|emoji|honorifics",ju={light:ku(Pu),medium:ku(Pu+Au),heavy:ku(Pu+Au+"|possessives|adverbs|nouns|verbs")};var Nu={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=ju[e]),Object.keys(e).forEach(t=>{wu.hasOwnProperty(t)&&wu[t](this,e[t])}),this}}};var Eu=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const xu=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Iu=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var Tu=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t.first()}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Gu(e,t),isSubordinate:Iu(e),root:t}};const Du=e=>e.text(),Cu=e=>e.json({terms:!1,normal:!0}).map(e=>e.normal),Ou=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Bu=function(e){let t=Tu(e);return{root:Du(t.root),number:Ou(t.number),determiner:Du(t.determiner),adjectives:Cu(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Vu={tags:!0};var zu=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Vu).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Vu),e};const $u={tags:!0};var Fu=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,$u).tag("Singular","toPlural"),e};const Su=(e,t)=>"number"==typeof t?e.eq(t):e;var Hu={api:function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Su(this,e).map(Tu)}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Bu(t)),n},[])}isPlural(e){let t=this.filter(e=>Tu(e).isPlural);return Su(t,e)}adjectives(e){let t=this.update([]);return this.forEach(e=>{let n=Tu(e).adjectives;n.found&&(t=t.concat(n))}),Su(t,e)}toPlural(e){return Su(this,e).map(e=>zu(e,Tu(e)))}toSingular(e){return Su(this,e).map(e=>{let t=Tu(e);return Fu(e,t)})}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Eu(this);return t=Su(t,e),new Nouns(this.document,t.pointer)}}};var Mu=function(e,t){let n=e.match("#Fraction+");return n=n.filter(e=>!e.lookBehind("#Value and$").found),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Wu=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Lu.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Lu.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Lu.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var qu=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Uu=/^([0-9,. ]+)\/([0-9,. ]+)$/,Ru={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},_u=e=>Object.keys(e).reduce((t,n)=>t+=e[n],0);var Qu=function(e){if(!0===Ru.hasOwnProperty(e))return Ru[e];if("a"===e||"an"===e)return 1;const t=Wu(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=Yu(n),r=Yu(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:Yu(n);let a=r.text("reduced");return Zu.test(a)&&(a=a.replace(Zu,""),r=r.replaceWith(a)),r=Xu.hasOwnProperty(a)?Xu[a]:Yu(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:Yu(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var tc=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const nc=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],rc=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],ac=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],oc=function(e){let t=[];if(e>100)return t;for(let n=0;n=nc[n][1]&&(e-=nc[n][1],t.push(nc[n][0]));return rc[e]&&t.push(rc[e]),t};var ic=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=tc(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return ac.forEach(r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}}),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(oc(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=tc(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee),0===n.length&&(n[0]=""),n.join(" ")};var sc=function(e){if(!e.numerator||!e.denominator)return"";return`${ic({num:e.numerator})} out of ${ic({num:e.denominator})}`};const lc={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var uc=e=>{let t=ic(e).split(" "),n=t[t.length-1];return lc.hasOwnProperty(n)?t[t.length-1]=lc[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var cc=function(e){if(!e.numerator||!e.denominator)return"";let t=ic({num:e.numerator}),n=uc({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const hc=(e,t)=>"number"==typeof t?e.eq(t):e;var dc=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return hc(this,e).map(ec)}get(e){return hc(this,e).map(ec)}json(e){return hc(this,e).map(t=>{let n=t.toView().json(e)[0],r=ec(t);return n.fraction=r,n},[])}toDecimal(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")}),this}toFraction(e){return hc(this,e).forEach(e=>{let t=ec(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}}),this}toOrdinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=cc(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)}),this}toCardinal(e){return hc(this,e).forEach(e=>{let t=ec(e),n=sc(t);e.replaceWith(n)}),this}toPercentage(e){return hc(this,e).forEach(e=>{let{decimal:t}=ec(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(n+"%")}),this}}e.prototype.fractions=function(e){let t=Mu(this);return t=hc(t,e),new Fractions(this.document,t.pointer)}};const mc="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var pc=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+mc+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+mc+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+mc+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+mc+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${mc})`),r=e.has("("+mc+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach(e=>{t=t.splitOn(e)})}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+mc+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+mc+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var gc=function(e){if("string"==typeof e)return{num:Qu(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=ec(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=Qu(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var fc=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=tc(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const vc={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},bc={"%":"percent","°":"degrees"};var yc=function(e){let t={suffix:"",prefix:e.prefix};return vc.hasOwnProperty(e.prefix)&&(t.suffix+=" "+vc[e.prefix],t.prefix=""),bc.hasOwnProperty(e.suffix)&&(t.suffix+=" "+bc[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var wc=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=yc(e);return t+uc(e)+n}if("Ordinal"===t)return e.prefix+fc(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=yc(e);return t+ic(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const kc=(e,t)=>"number"==typeof t?e.eq(t):e;var Pc=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return kc(this,e).map(gc)}get(e){return kc(this,e).map(gc).map(e=>e.num)}json(e){return kc(this,e).map(t=>{let n=t.toView().json(e)[0],r=gc(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n},[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach(e=>{let t=gc(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=wc(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")}),this}toLocaleString(){return this.forEach(e=>{let t=gc(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=wc(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})}),this}toText(){let e=this.map(e=>{if(e.has("#TextValue"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e});return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map(e=>{if(!e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e});return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map(e=>{if(e.has("#Ordinal"))return e;let t=gc(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=wc(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e});return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter(t=>gc(t).num===e)}greaterThan(e){return this.filter(t=>gc(t).num>e)}lessThan(e){return this.filter(t=>gc(t).num{let r=gc(n).num;return r>e&&r{let n=gc(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=gc(e).num);let t=this.map(t=>{let n=gc(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=wc(n,r);return t.replaceWith(a,{tags:!0}),t});return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=pc(this);return t=kc(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=pc(this);return t=t.filter(e=>e.has("#Percent")||e.after("^percent")),t=kc(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=pc(this);return t=t.filter(e=>e.has("#Money")||e.after("^#Currency")),t=kc(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Ac={api:function(e){dc(e),Pc(e)}};const jc={people:!0,emails:!0,phoneNumbers:!0,places:!0},Nc=function(e={}){return!1!==(e=Object.assign({},jc,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this};var Ec={api:function(e){e.prototype.redact=Nc}};var xc=function(e){const t=/\?/,{document:n}=e;return e.filter(e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))})};var Ic=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Gc=function(e){let t=e.clauses(),n=Ic(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e}),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var Tc=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Dc=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter(e=>!e.lookBehind("to$").found),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Cc=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let n=t.filter(t=>!t.lookBehind("to$").found&&(!!t.has("#Copula #Gerund")||!t.has("#Gerund")&&(!!t.has("#Copula")||(!t.has("#PresentTense")||!e.has("(when|as|how)")))));n.found&&n.toInfinitive()}return e};var Oc=function(e){return e.verbs().toInfinitive(),e};const Bc=(e,t)=>"number"==typeof t?e.eq(t):e;var Vc={api:function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map(t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Gc(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n},[])}toPastTense(e){return Bc(this,e).map(e=>(Gc(e),Tc(e)))}toPresentTense(e){return Bc(this,e).map(e=>(Gc(e),Dc(e)))}toFutureTense(e){return Bc(this,e).map(e=>(Gc(e),e=Cc(e)))}toInfinitive(e){return Bc(this,e).map(e=>(Gc(e),Oc(e)))}toNegative(e){return Bc(this,e).map(e=>(Gc(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e)))}toPositive(e){return Bc(this,e).map(e=>(Gc(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e)))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter(e=>e.lastTerm().has("@hasExclamation"));return Bc(t,e)}isStatement(e){let t=this.filter(e=>!e.isExclamation().found&&!e.isQuestion().found);return Bc(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map(e=>e.fullSentence());return t=Bc(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=xc(this);return Bc(t,e)}};Object.assign(e.prototype,t)}};var zc=function(e){return e.match("#Honorific+? #Person+")};var $c=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Fc="male",Sc="female",Hc={mr:Fc,mrs:Sc,miss:Sc,madam:Sc,king:Fc,queen:Sc,duke:Fc,duchess:Sc,baron:Fc,baroness:Sc,count:Fc,countess:Sc,prince:Fc,princess:Sc,sire:Fc,dame:Sc,lady:Sc,ayatullah:Fc,congressman:Fc,congresswoman:Sc,"first lady":Sc,mx:null};var Mc=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Sc;if(n.has("#MaleName"))return Fc;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Hc.hasOwnProperty(e))return Hc[e];if(/^her /.test(e))return Sc;if(/^his /.test(e))return Fc}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Fc;if(n&&!t)return Sc}return null};const Wc=(e,t)=>"number"==typeof t?e.eq(t):e;var Lc=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Wc(this,e).map($c)}json(e){return Wc(this,e).map(t=>{let n=t.toView().json(e)[0],r=$c(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Mc(r,t)},n},[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=zc(this);return t=Wc(t,e),new People(this.document,t.pointer)}};var Jc=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter(e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t};var qc=function(e){e.prototype.places=function(t){let n=Jc(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Kc=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const Uc=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var Rc=function(e){e.prototype.topics=Uc};var _c={api:function(e){Lc(e),qc(e),Kc(e),Rc(e)}};var Qc=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var Zc=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var Yc=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Xc=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},eh=function(e){return e.match("#Negative")},th=function(e){let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var nh=function(e){let t=e.clone();t.contractions().expand();const n=Zc(t);return{root:n,prefix:t.match("#Prefix"),adverbs:Yc(t,n),auxiliary:Xc(t,n),negative:eh(t),phrasal:th(n)}};const rh={tense:"PresentTense"},ah={conditional:!0},oh={tense:"FutureTense"},ih={progressive:!0},sh={tense:"PastTense"},lh={complete:!0,progressive:!1},uh={passive:!0},ch=function(e){let t={};return e.forEach(e=>{Object.assign(t,e)}),t},hh={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[rh]],["^wanted to #Infinitive$",[sh]],["^will want to #Infinitive$",[oh]]],"gerund-phrase":[["^#PastTense #Gerund$",[sh]],["^#PresentTense #Gerund$",[rh]],["^#Infinitive #Gerund$",[rh]],["^will #Infinitive #Gerund$",[oh]],["^have #PastTense #Gerund$",[sh]],["^will have #PastTense #Gerund$",[sh]]],"simple-present":[["^#PresentTense$",[rh]],["^#Infinitive$",[rh]]],"simple-past":[["^#PastTense$",[sh]]],"simple-future":[["^will #Adverb? #Infinitive",[oh]]],"present-progressive":[["^(is|are|am) #Gerund$",[rh,ih]]],"past-progressive":[["^(was|were) #Gerund$",[sh,ih]]],"future-progressive":[["^will be #Gerund$",[oh,ih]]],"present-perfect":[["^(has|have) #PastTense$",[sh,lh]]],"past-perfect":[["^had #PastTense$",[sh,lh]],["^had #PastTense to #Infinitive",[sh,lh]]],"future-perfect":[["^will have #PastTense$",[oh,lh]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[sh,ih]]],"past-perfect-progressive":[["^had been #Gerund$",[sh,ih]]],"future-perfect-progressive":[["^will have been #Gerund$",[oh,ih]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[sh,uh]],["^(was|were) being (#PastTense|#Participle)",[sh,uh]],["^(had|have) been (#PastTense|#Participle)",[sh,uh]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[rh,uh]],["^(is|are|am) being (#PastTense|#Participle)",[rh,uh]],["^has been (#PastTense|#Participle)",[rh,uh]]],"passive-future":[["will have been (#PastTense|#Participle)",[oh,uh,ah]],["will be being? (#PastTense|#Participle)",[oh,uh,ah]]],"present-conditional":[["would be #PastTense",[rh,ah]]],"past-conditional":[["would have been #PastTense",[sh,ah]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[oh]]],"auxiliary-past":[["^did #Infinitive$",[sh,{plural:!1}]],["^used to #Infinitive$",[sh,lh]]],"auxiliary-present":[["^(does|do) #Infinitive$",[rh,lh,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[sh]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let dh=[];Object.keys(hh).map(e=>{hh[e].forEach(t=>{dh.push({name:e,match:t[0],data:ch(t[1])})})});var mh=dh;var ph=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb"))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),gh(r)&&(n.remove(r),r=n.last()),gh(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:fh(t,e)}};const bh=e=>e,yh=(e,t)=>{let n=vh(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},wh=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=vh(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},kh=function(e,t){let n=vh(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Ph=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ah=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Ph(e)),r&&e.replace(t.root,r),e},jh=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Nh=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map(e=>e.normal)},Eh=function(e){return e&&e.isView?e.text("normal"):""},xh=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Ph(e))};var Ih=function(e){let t=nh(e);e=e.clone().toView();const n=ph(e,t);return{root:t.root.text(),preAdverbs:Nh(t.adverbs.pre),postAdverbs:Nh(t.adverbs.post),auxiliary:Eh(t.auxiliary),negative:t.negative.found,prefix:Eh(t.prefix),infinitive:xh(t.root),grammar:n}};const Gh={tags:!0};var Th=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Ph(r)),i&&e.replace(r,i,Gh).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=kh(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Dh={tags:!0},Ch={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Ph(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=vh(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Dh),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Ch.simple(e,t),e=Ch.noAux(e,t))},hasHad:e=>(e.replace("has","had",Dh),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ph(a)),n(o,e.model).Participle}},Oh={infinitive:Ch.simple,"simple-present":Ch.simple,"simple-past":bh,"simple-future":Ch.both,"present-progressive":e=>(e.replace("are","were",Dh),e.replace("(is|are|am)","was",Dh),e),"past-progressive":bh,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Ch.hasHad,"past-perfect":bh,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=jh(e)),e.remove("have"),e),"present-perfect-progressive":Ch.hasHad,"past-perfect-progressive":bh,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Dh),e),"passive-past":e=>(e.replace("have","had",Dh),e),"passive-present":e=>(e.replace("(is|are)","was",Dh),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Dh),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":bh,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Dh),e),"auxiliary-past":bh,"auxiliary-present":e=>(e.replace("(do|does)","did",Dh),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Dh):(Ch.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":bh,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Dh),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ch.simple(e,t),jh(e),e)};var Bh=function(e,t,n){return Oh.hasOwnProperty(n)?((e=Oh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Vh={tags:!0},zh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ph(a)),!1===yh(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=wh(e)),o&&(e=e.replace(a,o,Vh)).not("#Particle").tag("PresentTense"),e},$h=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ph(a)),!1===yh(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Vh)).not("#Particle").tag("Gerund"),e},Fh={infinitive:zh,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return zh(e,t);{let t=vh(e).subject;if(yh(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Vh)}return e},"simple-past":zh,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=wh(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else zh(e,t),e=e.remove("will");return e},"present-progressive":bh,"past-progressive":(e,t)=>{let n=wh(e);return e.replace("(were|was)",n,Vh)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(zh(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=vh(e).subject;return yh(e)||n.has("i")?((e=Ah(e,t)).remove("had"),e):(e.replace("had","has",Vh),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":bh,"past-perfect-progressive":e=>e.replace("had","has",Vh),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=wh(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Vh),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":bh,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":bh,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>($h(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=kh(e);return e.replace(t.auxiliary,n),e}return $h(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":bh,"modal-infinitive":bh,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Ph(r)),a&&(e=e.replace(t.root,a,Vh))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),zh(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return yh(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Vh),e.remove("will"),e}};var Sh=function(e,t,n){return Fh.hasOwnProperty(n)?((e=Fh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Hh={tags:!0},Mh=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Ph(r)),o&&(e=e.replace(r,o,Hh)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Wh=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Ph(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Hh),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Lh={infinitive:Mh,"simple-present":Mh,"simple-past":Mh,"simple-future":bh,"present-progressive":Wh,"past-progressive":Wh,"future-progressive":bh,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":bh,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":bh,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":bh,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":bh,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":bh,"modal-past":bh,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Mh(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Jh=function(e,t,n){return e.has("will")||e.has("going to")?e:Lh.hasOwnProperty(n)?((e=Lh[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qh={tags:!0};var Kh=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Ph(a));let s=r(i,e.model).Gerund;return s&&(s=`${wh(e)} ${s}`,e.replace(a,s,qh)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const Uh={tags:!0},Rh=function(e,t){let n=kh(e);return e.prepend(n+" not"),e},_h=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},Qh=e=>e.has("(is|was|am|are|will|were|be)"),Zh={"simple-present":(e,t)=>!0===Qh(e)?_h(e):(e=Ah(e,t),e=Rh(e)),"simple-past":(e,t)=>!0===Qh(e)?_h(e):((e=Ah(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===Qh(e)?_h(e):Rh(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",Uh),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=Rh(e)).replace("wants","want",Uh)};var Yh=function(e,t,n){if(e.has("#Negative"))return e;if(Zh.hasOwnProperty(n))return e=Zh[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===Qh(e)?_h(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Xh=(e,t)=>"number"==typeof t?e.eq(t):e;var ed={api:function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Xh(this,e).map(nh)}json(e,t){return Xh(this,t).map(t=>{let n=t.toView().json(e)[0]||{};return n.verb=Ih(t),n},[])}subjects(e){return Xh(this,e).map(e=>(nh(e),vh(e).subject))}adverbs(e){return Xh(this,e).map(e=>e.match("#Adverb"))}isSingular(e){return Xh(this,e).filter(e=>!0!==vh(e).plural)}isPlural(e){return Xh(this,e).filter(e=>!0===vh(e).plural)}isImperative(e){return Xh(this,e).filter(e=>e.has("#Imperative"))}toInfinitive(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return Th(e,t,n.form)})}toPresentTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return Sh(e,t,n.form)})}toPastTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return Bh(e,t,n.form)})}toFutureTense(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return Jh(e,t,n.form)})}toGerund(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return Kh(e,t,n.form)})}conjugate(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Th(e.clone(),t,n.form).text("normal"),PastTense:Bh(e.clone(),t,n.form).text("normal"),PresentTense:Sh(e.clone(),t,n.form).text("normal"),FutureTense:Jh(e.clone(),t,n.form).text("normal")}},[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Xh(this,e).map(e=>{let t=nh(e),n=ph(e,t);return Yh(e,t,n.form)})}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=Qc(this);return t=Xh(t,e),new Verbs(this.document,t.pointer)}}};P.plugin(Ql),P.plugin(bu),P.plugin(Nu),P.plugin(Hu),P.plugin(Ac),P.plugin(Ec),P.plugin(Vc),P.plugin(_c),P.plugin(ed);let td=P.world();const nd=P.methods().one.tokenize.splitSentences;var rd=function(e,t=1){let n=function(e,t=1){const n=Math.ceil(e.length/t),r=new Array(t);for(let a=0,o=0;aconsole.error(e)),a.push(l)}return a};let id=a.cpus().length;var sd={lib:{workerPool:function(e,t){let n=this;"string"==typeof t&&(t=n.parseMatch(t));let r=od(id,t),a=rd(e,id),o=[],i=r.map(e=>!0);return r.forEach((e,t)=>{e.postMessage({type:"work",work:a[t]||[]})}),new Promise(e=>{r.forEach(t=>{t.on("message",t=>{if("match"===t.type&&t.match.forEach(e=>{o.push(e)}),"drained"===t.type){let a=t.status.workerIndex;if(i[a]=!1,i.every(e=>!1===e)){let t=n("");t.document=o,r.forEach(e=>e.terminate()),e(t)}}})})})}}};var ld=function(e,t){let n=function(e){return Object.keys(e.hooks).filter(e=>!e.startsWith("#")&&!e.startsWith("%"))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter((e,t)=>n.some(e=>r[t].has(e)))};var ud={lib:{lazy:function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=ld(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()}}};const cd={lib:Object.assign({},o.lib,s.lib,sd.lib,ud.lib)};export{cd as default,s as keyPress,ud as lazyParse,o as streamFile,sd as workerPool}; diff --git a/plugins/speed/package.json b/plugins/speed/package.json index d7441c83f..bff2a4170 100644 --- a/plugins/speed/package.json +++ b/plugins/speed/package.json @@ -1,7 +1,7 @@ { "name": "compromise-speed", "description": "plugin for nlp-compromise", - "version": "0.1.0", + "version": "0.1.1", "author": "Spencer Kelly (http://spencermounta.in)", "main": "./src/plugin.js", "unpkg": "./builds/compromise-speed.min.js", @@ -24,7 +24,8 @@ "test": "tape \"./tests/**/*.test.js\" | tap-dancer --color always", "testb": "TESTENV=prod tape \"./tests/**/*.test.js\" | tap-dancer --color always", "watch": "amble ./scratch.js", - "build": "rollup -c --silent" + "version": "node ./scripts/version.js", + "build": "npm run version && rollup -c --silent" }, "files": [ "builds/", @@ -39,4 +40,4 @@ "nlp-corpus": "^4.4.0" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/plugins/speed/scripts/version.js b/plugins/speed/scripts/version.js new file mode 100644 index 000000000..5d0ea2cfe --- /dev/null +++ b/plugins/speed/scripts/version.js @@ -0,0 +1,6 @@ +import fs from 'fs' +// avoid requiring our whole package.json file +// make a small file for our version number +let pkg = JSON.parse(fs.readFileSync('./package.json').toString()) + +fs.writeFileSync('./src/_version.js', `export default '${pkg.version}'`) diff --git a/plugins/speed/src/_version.js b/plugins/speed/src/_version.js new file mode 100644 index 000000000..dafb75f04 --- /dev/null +++ b/plugins/speed/src/_version.js @@ -0,0 +1 @@ +export default '0.1.1' \ No newline at end of file diff --git a/plugins/speed/src/keypress/index.js b/plugins/speed/src/keypress/index.js index c1966d4c7..bbf98a4e1 100644 --- a/plugins/speed/src/keypress/index.js +++ b/plugins/speed/src/keypress/index.js @@ -4,7 +4,7 @@ let sentenceCache = {} const keyPress = function (text, lex, opts = {}) { const nlp = this const splitSentences = this.methods().one.tokenize.splitSentences - let arr = splitSentences(text, this.model()) + let arr = splitSentences(text, this.world()) let list = [] arr.forEach(str => { diff --git a/plugins/speed/src/plugin.js b/plugins/speed/src/plugin.js index 3da5b1d56..d87915216 100644 --- a/plugins/speed/src/plugin.js +++ b/plugins/speed/src/plugin.js @@ -2,10 +2,12 @@ import streamFile from './stream/streamFile.js' import keyPress from './keypress/index.js' import workerPool from './workerPool/plugin.js' import lazyParse from './lazyParse/plugin.js' +import version from './_version.js' // combine all the plugins const plugin = { lib: Object.assign({}, streamFile.lib, keyPress.lib, workerPool.lib, lazyParse.lib), + version: version } export { streamFile, keyPress, workerPool, lazyParse } diff --git a/plugins/speed/src/stream/streamFile.js b/plugins/speed/src/stream/streamFile.js index 17b086b11..c2a9ac866 100644 --- a/plugins/speed/src/stream/streamFile.js +++ b/plugins/speed/src/stream/streamFile.js @@ -2,7 +2,7 @@ import * as fs from 'fs'; const streamFile = function (path, fn, opts = {}) { const nlp = this - let model = nlp.model() + let world = nlp.world() const splitSentences = nlp.methods().one.tokenize.splitSentences const s = fs.createReadStream(path, opts); @@ -19,7 +19,7 @@ const streamFile = function (path, fn, opts = {}) { const quickSplit = function (str) { let end = txt.substring(str.length - 300) - let arr = splitSentences(end, model) + let arr = splitSentences(end, world) let last = arr[arr.length - 1] let main = str.substr(0, str.length - last.length) return [main, last] @@ -29,7 +29,7 @@ const streamFile = function (path, fn, opts = {}) { return new Promise((resolve, reject) => { s.on('data', function (chunk) { txt += chunk; - let [main, end] = quickSplit(txt, model) + let [main, end] = quickSplit(txt, world) doIt(main) txt = end }); diff --git a/plugins/speed/src/workerPool/rip.js b/plugins/speed/src/workerPool/rip.js index 2ff9fa556..7bf7da6c8 100644 --- a/plugins/speed/src/workerPool/rip.js +++ b/plugins/speed/src/workerPool/rip.js @@ -1,5 +1,5 @@ import nlp from '../../../../src/three.js' -let model = nlp.model() +let world = nlp.world() const splitSentences = nlp.methods().one.tokenize.splitSentences const fastSplit = function (str, numChunks = 1) { @@ -14,7 +14,7 @@ const fastSplit = function (str, numChunks = 1) { const pluckStarts = function (arr) { for (let i = 1; i < arr.length; i += 1) { let top = arr[i].substr(0, 200) - let first = splitSentences(top, model)[0] + let first = splitSentences(top, world)[0] // move the first (part) sentence onto the end of the last one let len = first.length arr[i - 1] += first From 9876639467d911c9bf9d42a6464ccaed700d1a60 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Sat, 2 Jul 2022 10:22:14 -0400 Subject: [PATCH 24/27] new dates build --- plugins/dates/builds/compromise-dates.cjs | 15 ++++++++++----- plugins/dates/builds/compromise-dates.min.js | 2 +- plugins/dates/builds/compromise-dates.mjs | 2 +- plugins/dates/package.json | 2 +- plugins/dates/src/_version.js | 2 +- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/plugins/dates/builds/compromise-dates.cjs b/plugins/dates/builds/compromise-dates.cjs index 5524cb764..a51049e9d 100644 --- a/plugins/dates/builds/compromise-dates.cjs +++ b/plugins/dates/builds/compromise-dates.cjs @@ -4268,7 +4268,7 @@ }; var whereIts$1 = whereIts; - var version = '7.1.4'; + var version$1 = '7.1.4'; const main = (input, tz, options) => new Spacetime(input, tz, options); @@ -4325,7 +4325,7 @@ //find tz by time main.whereIts = whereIts$1; - main.version = version; + main.version = version$1; //aliases: main.plugin = main.extend; @@ -7382,7 +7382,7 @@ } if (!doc.numbers) { - console.warn(`Warning: compromise-numbers plugin is not loaded.\n You should load this plugin \n - https://bit.ly/3t8RfFG`); //eslint-disable-line + console.warn(`Warning: compromise .numbers() not loaded.\n This plugin requires >= v14`); //eslint-disable-line } else { // doc.numbers().normalize() // convert 'two' to 2 @@ -7391,7 +7391,9 @@ num.toCardinal(false); } // expand 'aug 20-21' - doc.contractions().expand(); + if (doc.contractions) { + doc.contractions().expand(); + } // remove adverbs doc.adverbs().remove(); // 'week-end' @@ -8680,6 +8682,8 @@ ]; + var version = '3.4.1'; + // import matches from './compute/matches.js' var plugin = { @@ -8693,7 +8697,8 @@ // net = net || methods.one.buildNet(matches, world) // world.model.two.matches = world.model.two.matches.concat(matches) }, - hooks: ['dates'] + hooks: ['dates'], + version }; return plugin; diff --git a/plugins/dates/builds/compromise-dates.min.js b/plugins/dates/builds/compromise-dates.min.js index 6f3001819..7c771d547 100644 --- a/plugins/dates/builds/compromise-dates.min.js +++ b/plugins/dates/builds/compromise-dates.min.js @@ -1 +1 @@ -var e,t;e=this,t=function(){var e=function(e){let t=null;return e.has("^(between|within) #Date")?e:(e.has("#Month")&&(t=e.match("[#Month #Value] and? #Month",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t)),t=e.match("[#Value #Month] and? #Value #Month",0),t.found&&(e=e.splitAfter(t)),t=e.match("^[#Month] and? #Month #Ordinal?$",0),t.found&&(e=e.splitAfter(t)),t=e.match("[#Month #Value] #Month",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t))),e.has("#WeekDay")&&(t=e.match("^[#WeekDay] and? #WeekDay$",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t)),t=e.match("#WeekDay #WeekDay and? #WeekDay"),t.found&&(e=e.splitOn("#WeekDay")),t=e.match("[#WeekDay] (and|or|this|next)? #WeekDay",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter("#WeekDay"))),t=e.match("(this|next) #Duration [(today|tomorrow|yesterday)]",0),t.found&&(e=e.splitBefore(t)),t=e.match("[(today|tomorrow|yesterday)] #Value #Month",0),t.found&&(e=e.splitAfter(t)),t=e.match("[(today|tomorrow|yesterday)] (today|tomorrow|yesterday|#WeekDay)",0).ifNo("@hasDash$"),t.found&&(e=e.splitAfter(t)),e=e.not("^and"))},t=function(t){let a=t.match("#Date+");a=a.filter(e=>{let t=e.has("^#Duration+$")||e.has("^#Value #Duration+$");return!(!0!==t||!e.has("(#FinancialQuarter|quarter)"))||!1===t});let n=a.match("[#Cardinal #Duration (in|on|this|next|during|for)] #Date",0);return n.found&&(a=a.not(n)),n=a.match("[#Cardinal #Duration] #WeekDay",0),n.found&&(a=a.not(n)),n=a.match("#Date [for #Value #Duration]$",0),n.found&&(a=a.not(n)),n=a.match("[#Cardinal #Duration] #Date",0),n.found&&!a.has("#Cardinal #Duration] (ago|from|before|after|back)")&&(a=a.not(n)),n=a.match("for #Cardinal #Duration"),n.found&&(a=a.not(n)),a=a.notIf("^one (#WeekDay|#Month)$"),a=e(a),a=a.notIf("(#Money|#Percentage)"),a=a.notIf("^per #Duration"),a};const a={second:!0,minute:!0,hour:!0,day:!0,week:!0,weekend:!0,month:!0,season:!0,quarter:!0,year:!0},n={wk:"week",min:"minute",sec:"second",weekend:"week"},r=function(e){let t=e.match("#Duration").text("normal");return t=t.replace(/s$/,""),n.hasOwnProperty(t)&&(t=n[t]),t};var i=function(e){let t={},n=e.none(),i=e.match("#DateShift+");if(!1===i.found)return{res:t,m:n};if(i.match("#Cardinal #Duration").forEach(e=>{let n=e.match("#Cardinal").numbers().get()[0];if(n&&"number"==typeof n){let i=r(e);!0===a[i]&&(t[i]=n)}}),!0===i.has("(before|ago|hence|back)$")&&Object.keys(t).forEach(e=>t[e]*=-1),n=i.match("#Cardinal #Duration"),i=i.not(n),n=i.match("[#Duration] [(after|before)]"),n.found){let e=n.groups("unit").text("reduced"),a=n.groups("dir").text("reduced");"after"===a?t[e]=1:"before"===a&&(t[e]=-1)}if(n=i.match("half (a|an) [#Duration]",0),n.found){let e=r(n);t[e]=.5}return n=e.match("#DateShift+"),{result:t,m:n}};const o={minute:!0};var s=function(e){let t=e.match("[#Value] [#Duration+] (of|in)");if(t.found){let e=t.groups(),a=e.num.numbers().get()[0],n=e.unit.text("reduced"),r={unit:n,num:Number(a)||0};return o[n]||(r.num-=1),{result:r,m:t}}if(t=e.match("[(first|initial|last|final)] [#Duration+] (of|in)"),t.found){let e=t.groups(),a=e.dir.text("reduced"),n=e.unit.text("reduced");return"initial"===a&&(a="first"),"final"===a&&(a="last"),{result:{unit:n,dir:a},m:t}}return{result:null,m:e.none()}};const u=(e,t,a)=>{const[n,r]=e.split("/"),[i,o]=r.split(":");return Date.UTC(a,n-1,i,o)-36e5*t};var d=(e,t,a,n,r)=>{const i=new Date(e).getUTCFullYear(),o=u(t,r,i),s=u(a,n,i);return e>=o&&e{let t=e.timezones[e.tz];if(void 0===t)return console.warn("Warning: couldn't find timezone "+e.tz),0;if(void 0===t.dst)return t.offset;let a=t.offset,n=t.offset+1;"n"===t.hem&&(n=a-1);let r=t.dst.split("->");return!0===d(e.epoch,r[0],r[1],a,n)?a:n},m={"9|s":"2/dili,2/jayapura","9|n":"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,11/palau,japan,rok","9.5|s|04/03:03->10/02:02":"4/adelaide,4/broken_hill,4/south,4/yancowinna","9.5|s":"4/darwin,4/north","8|s|03/08:01->10/04:00":"12/casey","8|s":"2/kuala_lumpur,2/makassar,2/singapore,4/perth,2/ujung_pandang,4/west,singapore","8|n":"2/brunei,2/choibalsan,2/hong_kong,2/irkutsk,2/kuching,2/macau,2/manila,2/shanghai,2/taipei,2/ulaanbaatar,2/chongqing,2/chungking,2/harbin,2/macao,2/ulan_bator,hongkong,prc,roc","8.75|s":"4/eucla","7|s":"12/davis,2/jakarta,9/christmas","7|n":"2/bangkok,2/barnaul,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/ho_chi_minh,2/tomsk,2/vientiane,2/saigon","6|s":"12/vostok","6|n":"2/almaty,2/bishkek,2/dhaka,2/omsk,2/qyzylorda,2/qostanay,2/thimphu,2/urumqi,9/chagos,2/dacca,2/kashgar,2/thimbu","6.5|n":"2/yangon,9/cocos,2/rangoon","5|s":"12/mawson,9/kerguelen","5|n":"2/aqtau,2/aqtobe,2/ashgabat,2/atyrau,2/dushanbe,2/karachi,2/oral,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives,2/ashkhabad","5.75|n":"2/katmandu,2/kathmandu","5.5|n":"2/kolkata,2/colombo,2/calcutta","4|s":"9/reunion","4|n":"2/baku,2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,2/volgograd,9/mahe,9/mauritius","4.5|n|03/22:00->09/21:24":"2/tehran,iran","4.5|n":"2/kabul","3|s":"12/syowa,9/antananarivo","3|n|03/27:03->10/30:04":"2/famagusta,2/nicosia,8/athens,8/bucharest,8/helsinki,8/kiev,8/mariehamn,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye,8/nicosia","3|n|03/27:02->10/30:03":"8/chisinau,8/tiraspol","3|n|03/27:00->10/29:24":"2/beirut","3|n|03/27:00->10/28:01":"2/gaza,2/hebron","3|n|03/25:02->10/30:02":"2/jerusalem,2/tel_aviv,israel","3|n|03/25:00->10/27:24":"2/damascus","3|n|02/25:00->10/28:01":"2/amman","3|n":"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/baghdad,2/bahrain,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte,2/istanbul,turkey,w-su","2|s|03/27:02->10/30:02":"12/troll","2|s":"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane","2|n|03/27:02->10/30:03":"0/ceuta,arctic/longyearbyen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich,3/jan_mayen,poland","2|n":"0/blantyre,0/bujumbura,0/cairo,0/khartoum,0/kigali,0/tripoli,8/kaliningrad,egypt,libya","1|s":"0/brazzaville,0/kinshasa,0/luanda,0/windhoek","1|n|03/27:03->05/08:02":"0/casablanca,0/el_aaiun","1|n|03/27:01->10/30:02":"3/canary,3/faroe,3/madeira,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london,3/faeroe,eire,8/belfast,gb-eire,gb,portugal","1|n":"0/algiers,0/bangui,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis","14|n":"11/kiritimati","13|s|04/04:04->09/26:03":"11/apia","13|s|01/15:02->11/05:03":"11/tongatapu","13|n":"11/enderbury,11/fakaofo","12|s|04/03:03->09/25:02":"12/mcmurdo,11/auckland,12/south_pole,nz","12|s|01/17:03->11/14:02":"11/fiji","12|n":"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis,kwajalein","12.75|s|04/03:03->04/03:02":"11/chatham,nz-chat","11|s|04/03:03->10/02:02":"12/macquarie","11|s":"11/bougainville","11|n":"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape","11.5|n|04/03:03->10/02:02":"11/norfolk","10|s|04/03:03->10/02:02":"4/currie,4/hobart,4/melbourne,4/sydney,4/act,4/canberra,4/nsw,4/tasmania,4/victoria","10|s":"12/dumontdurville,4/brisbane,4/lindeman,11/port_moresby,4/queensland","10|n":"2/ust-nera,2/vladivostok,2/yakutsk,11/guam,11/saipan,11/chuuk,11/truk,11/yap","10.5|s|04/03:01->10/02:02":"4/lord_howe,4/lhi","0|n|03/27:00->10/30:01":"1/scoresbysund,3/azores","0|n":"0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/utc,0/timbuktu,13/greenwich,13/uct,13/universal,13/zulu,gmt-0,gmt+0,gmt0,greenwich,iceland,uct,universal,utc,zulu","-9|n|03/13:02->11/06:02":"1/adak,1/atka,us/aleutian","-9|n":"11/gambier","-9.5|n":"11/marquesas","-8|n|03/13:02->11/06:02":"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat,us/alaska","-8|n":"11/pitcairn","-7|n|03/13:02->11/06:02":"1/los_angeles,1/santa_isabel,1/tijuana,1/vancouver,1/ensenada,6/pacific,10/bajanorte,us/pacific-new,us/pacific","-7|n|03/08:02->11/01:01":"1/dawson,1/whitehorse,6/yukon","-7|n":"1/creston,1/dawson_creek,1/fort_nelson,1/hermosillo,1/phoenix,us/arizona","-6|s|04/02:22->09/03:22":"11/easter,7/easterisland","-6|n|04/03:02->10/30:02":"1/chihuahua,1/mazatlan,10/bajasur","-6|n|03/13:02->11/06:02":"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/ojinaga,1/yellowknife,1/shiprock,6/mountain,navajo,us/mountain","-6|n":"1/belize,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/regina,1/swift_current,1/tegucigalpa,11/galapagos,6/east-saskatchewan,6/saskatchewan","-5|s":"1/lima,1/rio_branco,1/porto_acre,5/acre","-5|n|04/03:02->10/30:02":"1/bahia_banderas,1/merida,1/mexico_city,1/monterrey,10/general","-5|n|03/13:02->11/06:02":"1/chicago,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,1/indiana/knox,1/indiana/tell_city,1/north_dakota/beulah,1/north_dakota/center,1/north_dakota/new_salem,1/knox_in,6/central,us/central,us/indiana-starke","-5|n|03/12:03->11/05:01":"1/north_dakota","-5|n":"1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/atikokan,jamaica","-4|s|05/13:23->08/13:01":"12/palmer","-4|s|04/02:24->09/04:00":"1/santiago,7/continental","-4|s|03/26:24->10/02:00":"1/asuncion","-4|s|02/16:24->11/03:00":"1/campo_grande,1/cuiaba","-4|s":"1/la_paz,1/manaus,5/west","-4|n|03/13:02->11/06:02":"1/detroit,1/grand_turk,1/indianapolis,1/iqaluit,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,1/indiana/marengo,1/indiana/petersburg,1/indiana/vevay,1/indiana/vincennes,1/indiana/winamac,1/kentucky/monticello,1/fort_wayne,1/indiana/indianapolis,1/kentucky/louisville,6/eastern,us/east-indiana,us/eastern,us/michigan","-4|n|03/13:00->11/06:01":"1/havana,cuba","-4|n|03/12:03->11/05:01":"1/indiana,1/kentucky","-4|n":"1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin","-3|s":"1/argentina,1/buenos_aires,1/catamarca,1/cordoba,1/fortaleza,1/jujuy,1/mendoza,1/montevideo,1/punta_arenas,1/sao_paulo,12/rothera,3/stanley,1/argentina/la_rioja,1/argentina/rio_gallegos,1/argentina/salta,1/argentina/san_juan,1/argentina/san_luis,1/argentina/tucuman,1/argentina/ushuaia,1/argentina/comodrivadavia,1/argentina/buenos_aires,1/argentina/catamarca,1/argentina/cordoba,1/argentina/jujuy,1/argentina/mendoza,1/argentina/rosario,1/rosario,5/east","-3|n|03/13:02->11/06:02":"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic","-3|n":"1/araguaina,1/bahia,1/belem,1/cayenne,1/maceio,1/paramaribo,1/recife,1/santarem","-2|n|03/26:22->10/29:23":"1/nuuk,1/godthab","-2|n|03/13:02->11/06:02":"1/miquelon","-2|n":"1/noronha,3/south_georgia,5/denoronha","-2.5|n|03/13:02->11/06:02":"1/st_johns,6/newfoundland","-1|n":"3/cape_verde","-11|n":"11/midway,11/niue,11/pago_pago,11/samoa,us/samoa","-10|n":"11/honolulu,11/johnston,11/rarotonga,11/tahiti,us/hawaii"},h=["africa","america","asia","atlantic","australia","brazil","canada","chile","europe","indian","mexico","pacific","antarctica","etc"];let c={};Object.keys(m).forEach(e=>{let t=e.split("|"),a={offset:Number(t[0]),hem:t[1]};t[2]&&(a.dst=t[2]),m[e].split(",").forEach(e=>{e=e.replace(/(^[0-9]+)\//,(e,t)=>(t=Number(t),h[t]+"/")),c[e]=a})}),c.utc={offset:0,hem:"n"};for(let e=-14;e<=14;e+=.5){let t=e;t>0&&(t="+"+t);let a="etc/gmt"+t;c[a]={offset:-1*e,hem:"n"},a="utc/gmt"+t,c[a]={offset:-1*e,hem:"n"}}var f=c;const y=/(\-?[0-9]+)h(rs)?/i,p=/(\-?[0-9]+)/,g=/utc([\-+]?[0-9]+)/i,w=/gmt([\-+]?[0-9]+)/i,b=function(e){return(e=Number(e))>=-13&&e<=13?"etc/gmt"+(e=((e*=-1)>0?"+":"")+e):null};var k=function(e){let t=e.match(y);if(null!==t)return b(t[1]);if(t=e.match(g),null!==t)return b(t[1]);if(t=e.match(w),null!==t){let e=-1*Number(t[1]);return b(e)}return t=e.match(p),null!==t?b(t[1]):null};const D=(()=>{let e=(()=>{if("undefined"==typeof Intl||void 0===Intl.DateTimeFormat)return null;let e=Intl.DateTimeFormat();if(void 0===e||void 0===e.resolvedOptions)return null;let t=e.resolvedOptions().timeZone;return t?t.toLowerCase():null})();return null===e?"utc":e})(),v=Object.keys(f).reduce((e,t)=>{let a=t.split("/")[1]||"";return a=a.replace(/_/g," "),e[a]=t,e},{});var A=(e,t)=>{if(!e)return D;"string"!=typeof e&&console.error("Timezone must be a string - recieved: '",e,"'\n");let a=e.trim();if(a=a.toLowerCase(),!0===t.hasOwnProperty(a))return a;if(a=(e=>(e=(e=(e=(e=(e=e.replace(/ time/g,"")).replace(/ (standard|daylight|summer)/g,"")).replace(/\b(east|west|north|south)ern/g,"$1")).replace(/\b(africa|america|australia)n/g,"$1")).replace(/\beuropean/g,"europe")).replace(/\islands/g,"island"))(a),!0===t.hasOwnProperty(a))return a;if(!0===v.hasOwnProperty(a))return v[a];if(!0===/[0-9]/.test(a)){let e=k(a);if(e)return e}throw new Error("Spacetime: Cannot find timezone named: '"+e+"'. Please enter an IANA timezone id.")};function x(e){return e%4==0&&e%100!=0||e%400==0}function O(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.valueOf())}function M(e){return"[object Object]"===Object.prototype.toString.call(e)}function _(e,t=2){return(e+="").length>=t?e:new Array(t-e.length+1).join("0")+e}function j(e){let t=e%10,a=e%100;return 1===t&&11!==a?e+"st":2===t&&12!==a?e+"nd":3===t&&13!==a?e+"rd":e+"th"}function $(e){return e=(e=String(e)).replace(/([0-9])(st|nd|rd|th)$/i,"$1"),parseInt(e,10)}function T(e=""){return"day"===(e=(e=(e=(e=e.toLowerCase().trim()).replace(/ies$/,"y")).replace(/s$/,"")).replace(/-/g,""))||"days"===e?"date":"min"===e||"mins"===e?"minute":e}function z(e){return"number"==typeof e?e:O(e)?e.getTime():e.epoch?e.epoch:null}function E(e,t){return!1===M(e)?t.clone().set(e):e}function V(e,t=""){const a=e>0?"+":"-",n=Math.abs(e);return`${a}${_(parseInt(""+n,10))}${t}${_(n%1*60)}`}const q={year:(new Date).getFullYear(),month:0,date:1};var S={parseArray:(e,t,a)=>{if(0===t.length)return e;let n=["year","month","date","hour","minute","second","millisecond"];for(let r=0;r{if(0===Object.keys(t).length)return e;t=Object.assign({},q,a,t);let n=Object.keys(t);for(let r=0;r0&&t<25e8&&!1===e.silent&&(console.warn(" - Warning: You are setting the date to January 1970."),console.warn(" - did input seconds instead of milliseconds?")),e.epoch=t,e}};const C=function(e){return e.epoch=Date.now(),Object.keys(e._today||{}).forEach(t=>{"function"==typeof e[t]&&(e=e[t](e._today[t]))}),e},N={now:e=>C(e),today:e=>C(e),tonight:e=>e=(e=C(e)).hour(18),tomorrow:e=>e=(e=(e=C(e)).add(1,"day")).startOf("day"),yesterday:e=>e=(e=(e=C(e)).subtract(1,"day")).startOf("day"),christmas:e=>{let t=C(e).year();return e=e.set([t,11,25,18,0,0])},"new years":e=>{let t=C(e).year();return e=e.set([t,11,31,18,0,0])}};N["new years eve"]=N["new years"];var P=N,Y=function(e){return e=(e=(e=(e=e.replace(/\b(mon|tues?|wed|wednes|thur?s?|fri|sat|satur|sun)(day)?\b/i,"")).replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/,/g,"")).replace(/ +/g," ").trim()};let H={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};H.date=H.day,H.month=25488e5,H.week=6048e5,H.year=3154e7,Object.keys(H).forEach(e=>{H[e+"s"]=H[e]});var B=H;const L=(e,t,a,n,r)=>{let i=e.d[a]();if(i===t)return;let o=null===r?null:e.d[r](),s=e.epoch,u=t-i;e.epoch+=B[n]*u,"day"===n&&Math.abs(u)>28&&t<28&&(e.epoch+=B.hour),null!==r&&o!==e.d[r]()&&(e.epoch=s);const d=B[n]/2;for(;e.d[a]()t;)e.epoch-=d;null!==r&&o!==e.d[r]()&&(e.epoch=s)},I={year:{valid:e=>e>-4e3&&e<4e3,walkTo:(e,t)=>L(e,t,"getFullYear","year",null)},month:{valid:e=>e>=0&&e<=11,walkTo:(e,t)=>{let a=e.d,n=a.getMonth(),r=e.epoch,i=a.getFullYear();if(n===t)return;let o=t-n;for(e.epoch+=B.day*(28*o),i!==e.d.getFullYear()&&(e.epoch=r);e.d.getMonth()t;)e.epoch-=B.day}},date:{valid:e=>e>0&&e<=31,walkTo:(e,t)=>L(e,t,"getDate","day","getMonth")},hour:{valid:e=>e>=0&&e<24,walkTo:(e,t)=>L(e,t,"getHours","hour","getDate")},minute:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>L(e,t,"getMinutes","minute","getHours")},second:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>{e.epoch=e.seconds(t).epoch}},millisecond:{valid:e=>e>=0&&e<1e3,walkTo:(e,t)=>{e.epoch=e.milliseconds(t).epoch}}};var W=(e,t)=>{let a=Object.keys(I),n=e.clone();for(let r=0;r{if(!t)return e;let a=0;if(/^[\+-]?[0-9]{2}:[0-9]{2}$/.test(t)&&(!0===/:00/.test(t)&&(t=t.replace(/:00/,"")),!0===/:30/.test(t)&&(t=t.replace(/:30/,".5"))),/^[\+-]?[0-9]{4}$/.test(t)&&(t=t.replace(/30$/,".5")),a=parseFloat(t),Math.abs(a)>100&&(a/=100),0===a||"Z"===t||"z"===t)return e.tz="etc/gmt",e;a*=-1,a>=0&&(a="+"+a);let n="etc/gmt"+a;return e.timezones[n]&&(e.tz=n),e},U=(e,t="")=>{let a=(t=t.replace(/^\s+/,"").toLowerCase()).match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:\.]?([0-9]{1,4})?/);if(null!==a){let n=Number(a[1]);if(n<0||n>24)return e.startOf("day");let r=Number(a[2]);if(a[2].length<2||r<0||r>59)return e.startOf("day");e=(e=(e=(e=e.hour(n)).minute(r)).seconds(a[3]||0)).millisecond(function(e=""){return(e=String(e)).length>3?e=e.substr(0,3):1===e.length?e+="00":2===e.length&&(e+="0"),Number(e)||0}(a[4]));let i=t.match(/[\b0-9] ?(am|pm)\b/);return null!==i&&i[1]&&(e=e.ampm(i[1])),e}if(a=t.match(/([0-9]+) ?(am|pm)/),null!==a&&a[1]){let t=Number(a[1]);return t>12||t<1?e.startOf("day"):e=(e=(e=e.hour(a[1]||0)).ampm(a[2])).startOf("hour")}return e=e.startOf("day")};let Z=Q();const X=e=>{if(!0!==F.hasOwnProperty(e.month))return!1;if(1===e.month)return!!(x(e.year)&&e.date<=29)||e.date<=28;let t=F[e.month]||0;return e.date<=t},ee=(e="",t)=>{if(e=e.trim(),!0===/^'[0-9][0-9]$/.test(e)){let t=Number(e.replace(/'/,""));return t>50?1900+t:2e3+t}let a=parseInt(e,10);return!a&&t&&(a=t.year),a=a||(new Date).getFullYear(),a},te=function(e){return"sept"===(e=e.toLowerCase().trim())?Z.sep:Z[e]};var ae=[].concat([{reg:/^(\-?0?0?[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9\-\+:]+)?$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:t[3]};return!1===X(a)?(e.epoch=null,e):(G(e,t[5]),W(e,a),e=U(e,t[4]))}},{reg:/^([0-9]{4})[\-\/\. ]([0-9]{1,2})[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:parseInt(t[3],10)};return a.month>=12&&(a.date=parseInt(t[2],10),a.month=parseInt(t[3],10)-1),!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}},{reg:/^([0-9]{4})[\-\/\. ]([a-z]+)[\-\/\. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:ee(t[1],e._today),month:te(t[2]),date:$(t[3]||"")};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}}],[{reg:/^([0-9]{1,2})[\-\/.]([0-9]{1,2})[\-\/.]?([0-9]{4})?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:(e,t)=>{let a=parseInt(t[1],10)-1,n=parseInt(t[2],10);(e.british||a>=12)&&(n=parseInt(t[1],10),a=parseInt(t[2],10)-1);let r={date:n,month:a,year:ee(t[3],e._today)||(new Date).getFullYear()};return!1===X(r)?(e.epoch=null,e):(W(e,r),e=U(e,t[4]))}},{reg:/^([a-z]+)[\-\/\. ]([0-9]{1,2})[\-\/\. ]?([0-9]{4}|'[0-9]{2})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={year:ee(t[3],e._today),month:te(t[1]),date:$(t[2]||"")};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2})( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:(e,t)=>{let a={year:ee(t[3],e._today),month:te(t[1]),date:$(t[2]||"")};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2})( [0-9:]+)?( \+[0-9]{4})?( [0-9]{4})?$/i,parse:(e,t)=>{let a={year:ee(t[5],e._today),month:te(t[1]),date:$(t[2]||"")};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[3]))}}],[{reg:/^([0-9]{1,2})[\-\/]([a-z]+)[\-\/]?([0-9]{4})?$/i,parse:(e,t)=>{let a={year:ee(t[3],e._today),month:te(t[2]),date:$(t[1]||"")};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}},{reg:/^([0-9]{1,2})( [a-z]+)( [0-9]{4}| '[0-9]{2})? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2}? ?(am|pm|gmt))?$/i,parse:(e,t)=>{let a={year:ee(t[3],e._today),month:te(t[2]),date:$(t[1])};return a.month&&!1!==X(a)?(W(e,a),e=U(e,t[4])):(e.epoch=null,e)}},{reg:/^([0-9]{1,2})[\. -/]([a-z]+)[\. -/]([0-9]{4})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{let a={date:Number(t[1]),month:te(t[2]),year:Number(t[3])};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=e.startOf("day"),e=U(e,t[4]))}}],[{reg:/^([0-9]{4})[\-\/]([0-9]{2})$/i,parse:(e,t)=>{let a={year:t[1],month:parseInt(t[2],10)-1,date:1};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:(e,t)=>{let a={year:ee(t[2],e._today),month:te(t[1]),date:e._today.date||1};return!1===X(a)?(e.epoch=null,e):(W(e,a),e=U(e,t[4]))}},{reg:/^(q[0-9])( of)?( [0-9]{4})?/i,parse:(e,t)=>{let a=t[1]||"";e=e.quarter(a);let n=t[3]||"";return n&&(n=n.trim(),e=e.year(n)),e}},{reg:/^(spring|summer|winter|fall|autumn)( of)?( [0-9]{4})?/i,parse:(e,t)=>{let a=t[1]||"";e=e.season(a);let n=t[3]||"";return n&&(n=n.trim(),e=e.year(n)),e}},{reg:/^[0-9,]+ ?b\.?c\.?$/i,parse:(e,t)=>{let a=t[0]||"";a=a.replace(/^([0-9,]+) ?b\.?c\.?$/i,"-$1");let n=new Date,r={year:parseInt(a.trim(),10),month:n.getMonth(),date:n.getDate()};return!1===X(r)?(e.epoch=null,e):(W(e,r),e=U(e))}},{reg:/^[0-9,]+ ?(a\.?d\.?|c\.?e\.?)$/i,parse:(e,t)=>{let a=t[0]||"";a=a.replace(/,/g,"");let n=new Date,r={year:parseInt(a.trim(),10),month:n.getMonth(),date:n.getDate()};return!1===X(r)?(e.epoch=null,e):(W(e,r),e=U(e))}},{reg:/^[0-9]{4}( ?a\.?d\.?)?$/i,parse:(e,t)=>{let a=e._today;a.month&&!a.date&&(a.date=1);let n=new Date,r={year:ee(t[0],a),month:a.month||n.getMonth(),date:a.date||n.getDate()};return!1===X(r)?(e.epoch=null,e):(W(e,r),e=U(e))}}]),ne=function(e,t,a){for(let n=0;n{let a=e._today||se;if("number"==typeof t)return oe(e,t);if(e.epoch=Date.now(),e._today&&M(e._today)&&Object.keys(e._today).length>0){let t=ie(e,a,se);t.isValid()&&(e.epoch=t.epoch)}return null==t||""===t?e:!0===O(t)?(e.epoch=t.getTime(),e):!0===function(e){return"[object Array]"===Object.prototype.toString.call(e)}(t)?e=re(e,t,a):!0===M(t)?t.epoch?(e.epoch=t.epoch,e.tz=t.tz,e):e=ie(e,t,a):"string"!=typeof t?e:(t=Y(t),!0===P.hasOwnProperty(t)?e=P[t](e):ne(e,t))};let de=["sun","mon","tue","wed","thu","fri","sat"],le=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function me(){return de}function he(){return le}const ce={mo:1,tu:2,we:3,th:4,fr:5,sa:6,su:7,tues:2,weds:3,wedn:3,thur:4,thurs:4};let fe=!0;var ye=e=>{let t=e.timezone().current.offset;return t?V(t,":"):"Z"};const pe=e=>fe?function(e){return e?e[0].toUpperCase()+e.substr(1):""}(e):e,ge={day:e=>pe(e.dayName()),"day-short":e=>pe(me()[e.day()]),"day-number":e=>e.day(),"day-ordinal":e=>j(e.day()),"day-pad":e=>_(e.day()),date:e=>e.date(),"date-ordinal":e=>j(e.date()),"date-pad":e=>_(e.date()),month:e=>pe(e.monthName()),"month-short":e=>pe(R()[e.month()]),"month-number":e=>e.month(),"month-ordinal":e=>j(e.month()),"month-pad":e=>_(e.month()),"iso-month":e=>_(e.month()+1),year:e=>{let t=e.year();return t>0?t:(t=Math.abs(t),t+" BC")},"year-short":e=>{let t=e.year();return t>0?"'"+String(e.year()).substr(2,4):(t=Math.abs(t),t+" BC")},"iso-year":e=>{let t=e.year(),a=t<0,n=_(Math.abs(t),4);return a&&(n=_(n,6),n="-"+n),n},time:e=>e.time(),"time-24":e=>`${e.hour24()}:${_(e.minute())}`,hour:e=>e.hour12(),"hour-pad":e=>_(e.hour12()),"hour-24":e=>e.hour24(),"hour-24-pad":e=>_(e.hour24()),minute:e=>e.minute(),"minute-pad":e=>_(e.minute()),second:e=>e.second(),"second-pad":e=>_(e.second()),millisecond:e=>e.millisecond(),"millisecond-pad":e=>_(e.millisecond(),3),ampm:e=>e.ampm(),quarter:e=>"Q"+e.quarter(),season:e=>e.season(),era:e=>e.era(),json:e=>e.json(),timezone:e=>e.timezone().name,offset:e=>ye(e),numeric:e=>`${e.year()}/${_(e.month()+1)}/${_(e.date())}`,"numeric-us":e=>`${_(e.month()+1)}/${_(e.date())}/${e.year()}`,"numeric-uk":e=>`${_(e.date())}/${_(e.month()+1)}/${e.year()}`,"mm/dd":e=>`${_(e.month()+1)}/${_(e.date())}`,iso:e=>`${e.format("iso-year")}-${_(e.month()+1)}-${_(e.date())}T${_(e.h24())}:${_(e.minute())}:${_(e.second())}.${_(e.millisecond(),3)}${ye(e)}`,"iso-short":e=>{let t=_(e.month()+1),a=_(e.date());var n;return`${(n=e.year())>=0?_(n,4):"-"+_(n=Math.abs(n),4)}-${t}-${a}`},"iso-utc":e=>new Date(e.epoch).toISOString(),nice:e=>`${R()[e.month()]} ${j(e.date())}, ${e.time()}`,"nice-24":e=>`${R()[e.month()]} ${j(e.date())}, ${e.hour24()}:${_(e.minute())}`,"nice-year":e=>`${R()[e.month()]} ${j(e.date())}, ${e.year()}`,"nice-day":e=>`${me()[e.day()]} ${pe(R()[e.month()])} ${j(e.date())}`,"nice-full":e=>`${e.dayName()} ${pe(e.monthName())} ${j(e.date())}, ${e.time()}`,"nice-full-24":e=>`${e.dayName()} ${pe(e.monthName())} ${j(e.date())}, ${e.hour24()}:${_(e.minute())}`},we={"day-name":"day","month-name":"month","iso 8601":"iso","time-h24":"time-24","time-12":"time","time-h12":"time",tz:"timezone","day-num":"day-number","month-num":"month-number","month-iso":"iso-month","year-iso":"iso-year","nice-short":"nice","nice-short-24":"nice-24",mdy:"numeric-us",dmy:"numeric-uk",ymd:"numeric","yyyy/mm/dd":"numeric","mm/dd/yyyy":"numeric-us","dd/mm/yyyy":"numeric-us","little-endian":"numeric-uk","big-endian":"numeric","day-nice":"nice-day"};Object.keys(we).forEach(e=>ge[e]=ge[we[e]]);var be=(e,t="")=>{if(!0!==e.isValid())return"";if(ge.hasOwnProperty(t)){let a=ge[t](e)||"";return"json"!==t&&(a=String(a),"ampm"!==t&&(a=pe(a))),a}if(-1!==t.indexOf("{")){let a=/\{(.+?)\}/g;return t=t.replace(a,(t,a)=>{if(a=a.toLowerCase().trim(),ge.hasOwnProperty(a)){let t=String(ge[a](e));return"ampm"!==a?pe(t):t}return""})}return e.format("iso-short")};const ke={G:e=>e.era(),GG:e=>e.era(),GGG:e=>e.era(),GGGG:e=>"AD"===e.era()?"Anno Domini":"Before Christ",y:e=>e.year(),yy:e=>_(Number(String(e.year()).substr(2,4))),yyy:e=>e.year(),yyyy:e=>e.year(),yyyyy:e=>"0"+e.year(),Q:e=>e.quarter(),QQ:e=>e.quarter(),QQQ:e=>e.quarter(),QQQQ:e=>e.quarter(),M:e=>e.month()+1,MM:e=>_(e.month()+1),MMM:e=>e.format("month-short"),MMMM:e=>e.format("month"),w:e=>e.week(),ww:e=>_(e.week()),d:e=>e.date(),dd:e=>_(e.date()),D:e=>e.dayOfYear(),DD:e=>_(e.dayOfYear()),DDD:e=>_(e.dayOfYear(),3),E:e=>e.format("day-short"),EE:e=>e.format("day-short"),EEE:e=>e.format("day-short"),EEEE:e=>e.format("day"),EEEEE:e=>e.format("day")[0],e:e=>e.day(),ee:e=>e.day(),eee:e=>e.format("day-short"),eeee:e=>e.format("day"),eeeee:e=>e.format("day")[0],a:e=>e.ampm().toUpperCase(),aa:e=>e.ampm().toUpperCase(),aaa:e=>e.ampm().toUpperCase(),aaaa:e=>e.ampm().toUpperCase(),h:e=>e.h12(),hh:e=>_(e.h12()),H:e=>e.hour(),HH:e=>_(e.hour()),m:e=>e.minute(),mm:e=>_(e.minute()),s:e=>e.second(),ss:e=>_(e.second()),SSS:e=>_(e.millisecond(),3),A:e=>e.epoch-e.startOf("day").epoch,z:e=>e.timezone().name,zz:e=>e.timezone().name,zzz:e=>e.timezone().name,zzzz:e=>e.timezone().name,Z:e=>V(e.timezone().current.offset),ZZ:e=>V(e.timezone().current.offset),ZZZ:e=>V(e.timezone().current.offset),ZZZZ:e=>V(e.timezone().current.offset,":")},De=(e,t,a)=>{let n=e,r=t;for(let i=0;i{let a=t.split("");return a=function(e){for(let t=0;te)}(a),a=function(e){for(let t=0;te)).map(e=>("''"===e&&(e="'"),e))}(a),a.reduce((t,a)=>(void 0!==ke[a]?t+=ke[a](e)||"":(/^'.{1,}'$/.test(a)&&(a=a.replace(/'/g,"")),t+=a),t),"")};const Ae=["year","season","quarter","month","week","day","quarterHour","hour","minute"],xe=function(e,t){let a=e.clone().startOf(t),n=e.clone().endOf(t).epoch-a.epoch,r=(e.epoch-a.epoch)/n;return parseFloat(r.toFixed(2))};var Oe=(e,t)=>{if(t)return t=T(t),xe(e,t);let a={};return Ae.forEach(t=>{a[t]=xe(e,t)}),a},Me=(e,t)=>{let a=e.progress();return"quarterhour"===(t=T(t))&&(t="quarterHour"),void 0!==a[t]?(a[t]>.5&&(e=e.add(1,t)),e=e.startOf(t)):!1===e.silent&&console.warn("no known unit '"+t+"'"),e};const _e=(e,t,a)=>{let n=0;for(e=e.clone();e.isBefore(t);)e=e.add(1,a),n+=1;return e.isAfter(t,a)&&(n-=1),n};var je=(e,t,a)=>e.isBefore(t)?_e(e,t,a):-1*_e(t,e,a),$e=function(e,t){let a=t.epoch-e.epoch,n={milliseconds:a,seconds:parseInt(a/1e3,10)};n.minutes=parseInt(n.seconds/60,10),n.hours=parseInt(n.minutes/60,10);let r=e.clone();return n.years=((e,t)=>{let a=t.year()-e.year();return(e=e.year(t.year())).isAfter(t)&&(a-=1),a})(r,t),r=e.add(n.years,"year"),n.months=12*n.years,r=e.add(n.months,"month"),n.months+=je(r,t,"month"),n.weeks=52*n.years,r=e.add(n.weeks,"week"),n.weeks+=je(r,t,"week"),n.days=7*n.weeks,r=e.add(n.days,"day"),n.days+=je(r,t,"day"),n},Te=function(e,t,a){t=E(t,e);let n=!1;if(e.isAfter(t)){let a=e;e=t,t=a,n=!0}let r=$e(e,t);return n&&(r=function(e){return Object.keys(e).forEach(t=>{e[t]*=-1}),e}(r)),a?(a=T(a),!0!==/s$/.test(a)&&(a+="s"),"dates"===a&&(a="days"),r[a]):r};const ze=e=>Math.abs(e)||0;var Ee=function(e){let t="P";return t+=ze(e.years)+"Y",t+=ze(e.months)+"M",t+=ze(e.days)+"DT",t+=ze(e.hours)+"H",t+=ze(e.minutes)+"M",t+=ze(e.seconds)+"S",t};const Ve={months:{almost:10,over:4},days:{almost:25,over:10},hours:{almost:20,over:8},minutes:{almost:50,over:20},seconds:{almost:50,over:20}};function qe(e,t){return 1===e&&(t=t.slice(0,-1)),e+" "+t}var Se=function(e){let t=null,a=null,n=[],r=[];return Object.keys(e).forEach((i,o,s)=>{const u=Math.abs(e[i]);if(0===u)return;n.push(u+i[0]);const d=qe(u,i);if(r.push(d),!t){if(t=a=d,o>4)return;const n=s[o+1],r=Math.abs(e[n]);r>Ve[n].almost?(t=qe(u+1,i),a="almost "+t):r>Ve[n].over&&(a="over "+d)}}),{qualified:a,rounded:t,abbreviated:n,englishValues:r}},Ce=(e,t)=>{const a=function(e,t){const a=e.isBefore(t),n=a?t:e;let r=a?e:t;r=r.clone();const i={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(i).forEach(e=>{if(r.isSame(n,e))return;let t=r.diff(n,e);r=r.add(t,e),i[e]=t}),a&&Object.keys(i).forEach(e=>{0!==i[e]&&(i[e]*=-1)}),i}(e,t=E(t,e));if(!0===Object.keys(a).every(e=>!a[e]))return{diff:a,rounded:"now",qualified:"now",precise:"now",abbreviated:[],iso:"P0Y0M0DT0H0M0S",direction:"present"};let n,r="future",{rounded:i,qualified:o,englishValues:s,abbreviated:u}=Se(a);n=s.splice(0,2).join(", "),!0===e.isAfter(t)?(i+=" ago",o+=" ago",n+=" ago",r="past"):(i="in "+i,o="in "+o,n="in "+n);let d=Ee(a);return{diff:a,rounded:i,qualified:o,precise:n,abbreviated:u,iso:d,direction:r}},Ne={north:[["spring",2,1],["summer",5,1],["fall",8,1],["autumn",8,1],["winter",11,1]],south:[["fall",2,1],["autumn",2,1],["winter",5,1],["spring",8,1],["summer",11,1]]},Pe=[null,[0,1],[3,1],[6,1],[9,1]];const Ye={minute:e=>(W(e,{second:0,millisecond:0}),e),quarterhour:e=>{let t=e.minutes();return e=t>=45?e.minutes(45):t>=30?e.minutes(30):t>=15?e.minutes(15):e.minutes(0),W(e,{second:0,millisecond:0}),e},hour:e=>(W(e,{minute:0,second:0,millisecond:0}),e),day:e=>(W(e,{hour:0,minute:0,second:0,millisecond:0}),e),week:e=>{let t=e.clone();return(e=e.day(e._weekStart)).isAfter(t)&&(e=e.subtract(1,"week")),W(e,{hour:0,minute:0,second:0,millisecond:0}),e},month:e=>(W(e,{date:1,hour:0,minute:0,second:0,millisecond:0}),e),quarter:e=>{let t=e.quarter();return Pe[t]&&W(e,{month:Pe[t][0],date:Pe[t][1],hour:0,minute:0,second:0,millisecond:0}),e},season:e=>{let t=e.season(),a="north";"South"===e.hemisphere()&&(a="south");for(let n=0;n(W(e,{month:0,date:1,hour:0,minute:0,second:0,millisecond:0}),e),decade:e=>{let t=(e=e.startOf("year")).year(),a=10*parseInt(t/10,10);return e=e.year(a)},century:e=>{let t=(e=e.startOf("year")).year(),a=100*parseInt(t/100,10);return e=e.year(a)}};Ye.date=Ye.day;var He=function(e,t,a){if(!t||!a)return[];if(t=T(t),a=e.clone().set(a),e.isAfter(a)){let t=e;e=a,a=t}let n=e.clone();!function(e){return!!me().find(t=>t===e)||!!he().find(t=>t===e)}(t)?n.startOf(t).isBefore(e)&&(n=n.next(t)):(n=n.next(t),t="week");let r=[];for(;n.isBefore(a);)r.push(n),n=n.add(1,t);return r},Be=e=>{let t=e.timezones,a=e.tz;if(!1===t.hasOwnProperty(a)&&(a=A(e.tz,t)),null===a)return!1===e.silent&&console.warn("Warn: could not find given or local timezone - '"+e.tz+"'"),{current:{epochShift:0}};let n=t[a],r={name:(i=a,i=(i=(i=i[0].toUpperCase()+i.substr(1)).replace(/\/gmt/,"/GMT")).replace(/[\/_]([a-z])/gi,e=>e.toUpperCase())),hasDst:Boolean(n.dst),default_offset:n.offset,hemisphere:"s"===n.hem?"South":"North",current:{}};var i,o;if(r.hasDst){let e=(o=n.dst)?o.split("->"):[];r.change={start:e[0],back:e[1]}}let s=n.offset,u=s;return!0===r.hasDst&&(u="North"===r.hemisphere?s-1:n.offset+1),!1===r.hasDst?(r.current.offset=s,r.current.isDST=!1):!0===d(e.epoch,r.change.start,r.change.back,s,u)?(r.current.offset=s,r.current.isDST="North"===r.hemisphere):(r.current.offset=u,r.current.isDST="South"===r.hemisphere),r};const Le=["century","decade","year","month","date","day","hour","minute","second","millisecond"],Ie={set:function(e,t){let a=this.clone();return a=ue(a,e),t&&(this.tz=A(t)),a},timezone:function(){return Be(this)},isDST:function(){return Be(this).current.isDST},hasDST:function(){return Be(this).hasDst},offset:function(){return 60*Be(this).current.offset},hemisphere:function(){return Be(this).hemisphere},format:function(e){return be(this,e)},unixFmt:function(e){return ve(this,e)},startOf:function(e){return((e,t)=>{let a=e.clone();return t=T(t),Ye[t]?Ye[t](a):"summer"===t||"winter"===t?(a=a.season(t),Ye.season(a)):a})(this,e)},endOf:function(e){return((e,t)=>{let a=e.clone();return t=T(t),Ye[t]?(a=Ye[t](a),a=a.add(1,t),a=a.subtract(1,"millisecond"),a):a})(this,e)},leapYear:function(){return x(this.year())},progress:function(e){return Oe(this,e)},nearest:function(e){return Me(this,e)},diff:function(e,t){return Te(this,e,t)},since:function(e){return e||(e=this.clone().set()),Ce(this,e)},next:function(e){return this.add(1,e).startOf(e)},last:function(e){return this.subtract(1,e).startOf(e)},isValid:function(){return!(!this.epoch&&0!==this.epoch||isNaN(this.d.getTime()))},goto:function(e){let t=this.clone();return t.tz=A(e,t.timezones),t},every:function(e,t){if("object"==typeof e&&"string"==typeof t){let a=t;t=e,e=a}return He(this,e,t)},isAwake:function(){let e=this.hour();return!(e<8||e>22)},isAsleep:function(){return!this.isAwake()},daysInMonth:function(){switch(this.month()){case 0:return 31;case 1:return this.leapYear()?29:28;case 2:return 31;case 3:return 30;case 4:return 31;case 5:return 30;case 6:case 7:return 31;case 8:return 30;case 9:return 31;case 10:return 30;case 11:return 31;default:throw new Error("Invalid Month state.")}},log:function(){return console.log(""),console.log(be(this,"nice-short")),this},logYear:function(){return console.log(""),console.log(be(this,"full-short")),this},json:function(){return Le.reduce((e,t)=>(e[t]=this[t](),e),{})},debug:function(){let e=this.timezone(),t=this.format("MM")+" "+this.format("date-ordinal")+" "+this.year();return t+="\n - "+this.format("time"),console.log("\n\n",t+"\n - "+e.name+" ("+e.current.offset+")"),this},from:function(e){return(e=this.clone().set(e)).since(this)},fromNow:function(){return this.clone().set(Date.now()).since(this)},weekStart:function(e){if("number"==typeof e)return this._weekStart=e,this;if("string"==typeof e){e=e.toLowerCase().trim();let t=me().indexOf(e);-1===t&&(t=he().indexOf(e)),-1===t&&(t=1),this._weekStart=t}else console.warn("Spacetime Error: Cannot understand .weekStart() input:",e);return this}};Ie.inDST=Ie.isDST,Ie.round=Ie.nearest,Ie.each=Ie.every;var We=Ie;const Fe=e=>("string"==typeof e&&(e=parseInt(e,10)),e),Je=["year","month","date","hour","minute","second","millisecond"],Ke=(e,t,a)=>{let n=Je.indexOf(a),r=Je.slice(n,Je.length);for(let a=0;a=24?t=24:t<0&&(t=0);let n=e.clone(),r=e.hour()-t,i=r*B.hour;return e.epoch-=i,e.date()!==n.date()&&(e=n.clone(),r>1&&(r-=1),r<1&&(r+=1),i=r*B.hour,e.epoch-=i),W(e,{hour:t}),Ke(e,n,"minute"),(e=Re(e,n,a,"day")).epoch},Ue=function(e,t){return"string"==typeof t&&/^'[0-9]{2}$/.test(t)&&(t=t.replace(/'/,"").trim(),t=(t=Number(t))>30?1900+t:2e3+t),t=Fe(t),W(e,{year:t}),e.epoch};let Ze="am",Xe="pm";var et={millisecond:function(e){if(void 0!==e){let t=this.clone();return t.epoch=function(e,t){t=Fe(t);let a=e.millisecond()-t;return e.epoch-a}(t,e),t}return this.d.getMilliseconds()},second:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){t=Fe(t);let n=e.clone(),r=(e.second()-t)*B.second;return e.epoch=e.epoch-r,(e=Re(e,n,a,"minute")).epoch}(a,e,t),a}return this.d.getSeconds()},minute:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=Qe(a,e,t),a}return this.d.getMinutes()},hour:function(e,t){let a=this.d;if(void 0!==e){let a=this.clone();return a.epoch=Ge(a,e,t),a}return a.getHours()},hourFloat:function(e,t){if(void 0!==e){let a=this.clone(),n=e%1;n*=60;let r=parseInt(e,10);return a.epoch=Ge(a,r,t),a.epoch=Qe(a,n,t),a}let a=this.d,n=a.getHours(),r=a.getMinutes();return r/=60,n+r},hour12:function(e,t){let a=this.d;if(void 0!==e){let a=this.clone(),n=(e=""+e).match(/^([0-9]+)(am|pm)$/);if(n){let e=parseInt(n[1],10);"pm"===n[2]&&(e+=12),a.epoch=Ge(a,e,t)}return a}let n=a.getHours();return n>12&&(n-=12),0===n&&(n=12),n},time:function(e,t){if(void 0!==e){let a=this.clone();return e=e.toLowerCase().trim(),a.epoch=function(e,t,a){let n=t.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/);if(!n){if(n=t.match(/([0-9]{1,2}) ?(am|pm)/),!n)return e.epoch;n.splice(2,0,"0"),n.splice(3,0,"")}let r=!1,i=parseInt(n[1],10),o=parseInt(n[2],10);o>=60&&(o=59),i>12&&(r=!0),!1===r&&("am"===n[4]&&12===i&&(i=0),"pm"===n[4]&&i<12&&(i+=12)),n[3]=n[3]||"",n[3]=n[3].replace(/:/,"");let s=parseInt(n[3],10)||0,u=e.clone();return e=(e=(e=(e=e.hour(i)).minute(o)).second(s)).millisecond(0),(e=Re(e,u,a,"day")).epoch}(a,e,t),a}return`${this.h12()}:${_(this.minute())}${this.ampm()}`},ampm:function(e,t){let a=Ze,n=this.hour();if(n>=12&&(a=Xe),"string"!=typeof e)return a;let r=this.clone();return e=e.toLowerCase().trim(),n>=12&&"am"===e?(n-=12,r.hour(n,t)):n<12&&"pm"===e?(n+=12,r.hour(n,t)):r},dayTime:function(e,t){if(void 0!==e){const a={morning:"7:00am",breakfast:"7:00am",noon:"12:00am",lunch:"12:00pm",afternoon:"2:00pm",evening:"6:00pm",dinner:"6:00pm",night:"11:00pm",midnight:"23:59pm"};let n=this.clone();return e=(e=e||"").toLowerCase(),!0===a.hasOwnProperty(e)&&(n=n.time(a[e],t)),n}let a=this.hour();return a<6?"night":a<12?"morning":a<17?"afternoon":a<22?"evening":"night"},iso:function(e){return void 0!==e?this.set(e):this.format("iso")}},tt={date:function(e,t){if(void 0!==e){let a=this.clone();return(e=parseInt(e,10))&&(a.epoch=function(e,t,a){if((t=Fe(t))>28){let a=e.month(),n=F[a];1===a&&29===t&&x(e.year())&&(n=29),t>n&&(t=n)}t<=0&&(t=1);let n=e.clone();return W(e,{date:t}),(e=Re(e,n,a,"month")).epoch}(a,e,t)),a}return this.d.getDate()},day:function(e,t){if(void 0===e)return this.d.getDay();let a=this.clone(),n=e;"string"==typeof e&&(e=e.toLowerCase(),ce.hasOwnProperty(e)?n=ce[e]:(n=me().indexOf(e),-1===n&&(n=he().indexOf(e))));let r=this.d.getDay()-n;!0===t&&r>0&&(r-=7),!1===t&&r<0&&(r+=7);let i=this.subtract(r,"days");return W(i,{hour:a.hour(),minute:a.minute(),second:a.second()}),i},dayName:function(e,t){if(void 0===e)return he()[this.day()];let a=this.clone();return a=a.day(e,t),a}};const at=e=>e=(e=(e=e.minute(0)).second(0)).millisecond(1);var nt={dayOfYear:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){t=Fe(t);let n=e.clone();return(t-=1)<=0?t=0:t>=365&&(t=364),e=(e=e.startOf("year")).add(t,"day"),Ke(e,n,"hour"),(e=Re(e,n,a,"year")).epoch}(a,e,t),a}let a,n=0,r=this.d.getMonth();for(let e=1;e<=r;e++)a=new Date,a.setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(e),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){let n=e.clone();return t=Fe(t),"december"===(e=(e=(e=e.month(0)).date(1)).day("monday")).monthName()&&e.date()>=28&&(e=e.add(1,"week")),t-=1,e=e.add(t,"weeks"),(e=Re(e,n,a,"year")).epoch}(this,e,t),a=at(a),a}let a=this.clone();a=a.month(0),a=a.date(1),a=at(a),a=a.day("monday"),"december"===a.monthName()&&a.date()>=28&&(a=a.add(1,"week"));let n=1;1===a.date()&&(n=0),a=a.minus(1,"second");const r=this.epoch;if(a.epoch>r)return 1;let i=0,o=4*this.month();for(a.epoch+=B.week*o,i+=o;i<=52;i++){if(a.epoch>r)return i+n;a=a.add(1,"week")}return 52},month:function(e,t){if(void 0!==e){let a=this.clone();return a.epoch=function(e,t,a){"string"==typeof t&&("sept"===t&&(t="sep"),t=Q()[t.toLowerCase()]),(t=Fe(t))>=12&&(t=11),t<=0&&(t=0);let n=e.date();n>F[t]&&(n=F[t]);let r=e.clone();return W(e,{month:t,d:n}),(e=Re(e,r,a,"year")).epoch}(a,e,t),a}return this.d.getMonth()},monthName:function(e,t){if(void 0!==e){let a=this.clone();return a=a.month(e,t),a}return K[this.month()]},quarter:function(e,t){if(void 0!==e&&("string"==typeof e&&(e=e.replace(/^q/i,""),e=parseInt(e,10)),Pe[e])){let a=this.clone(),n=Pe[e][0];return a=a.month(n,t),a=a.date(1,t),a=a.startOf("day"),a}let a=this.d.getMonth();for(let e=1;e=Ne[a][e][1]&&n0&&(t.epoch=Ue(t,-1*a)),"ad"===e&&a<0&&(t.epoch=Ue(t,-1*a)),t}return this.d.getFullYear()<0?"BC":"AD"},decade:function(e){if(void 0!==e){if(!(e=(e=(e=String(e)).replace(/([0-9])'?s$/,"$1")).replace(/([0-9])(th|rd|st|nd)/,"$1")))return console.warn("Spacetime: Invalid decade input"),this;2===e.length&&/[0-9][0-9]/.test(e)&&(e="19"+e);let t=Number(e);return isNaN(t)?this:(t=10*Math.floor(t/10),this.year(t))}return this.startOf("decade").year()},century:function(e){if(void 0!==e){"string"==typeof e&&(e=(e=(e=e.replace(/([0-9])(th|rd|st|nd)/,"$1")).replace(/([0-9]+) ?(b\.?c\.?|a\.?d\.?)/i,(e,t,a)=>(a.match(/b\.?c\.?/i)&&(t="-"+t),t))).replace(/c$/,""));let t=Number(e);return isNaN(e)?(console.warn("Spacetime: Invalid century input"),this):(0===t&&(t=1),t=t>=0?100*(t-1):100*(t+1),this.year(t))}let t=this.startOf("century").year();return t=Math.floor(t/100),t<0?t-1:t+1},millenium:function(e){if(void 0!==e){if("string"==typeof e&&(e=e.replace(/([0-9])(th|rd|st|nd)/,"$1"),e=Number(e),isNaN(e)))return console.warn("Spacetime: Invalid millenium input"),this;e>0&&(e-=1);let t=1e3*e;return 0===t&&(t=1),this.year(t)}let t=Math.floor(this.year()/1e3);return t>=0&&(t+=1),t}};const rt=Object.assign({},et,tt,nt);rt.milliseconds=rt.millisecond,rt.seconds=rt.second,rt.minutes=rt.minute,rt.hours=rt.hour,rt.hour24=rt.hour,rt.h12=rt.hour12,rt.h24=rt.hour24,rt.days=rt.day;var it=e=>{Object.keys(rt).forEach(t=>{e.prototype[t]=rt[t]})};const ot=function(e,t){return 1===e&&x(t)?29:F[e]},st=(e,t)=>{if(e.month>0){let a=parseInt(e.month/12,10);e.year=t.year()+a,e.month=e.month%12}else if(e.month<0){let a=Math.abs(e.month),n=parseInt(a/12,10);a%12!=0&&(n+=1),e.year=t.year()-n,e.month=e.month%12,e.month=e.month+12,12===e.month&&(e.month=0)}return e},ut=(e,t,a)=>{let n=t.year(),r=t.month(),i=ot(r,n);for(;a>i;)a-=i,r+=1,r>=12&&(r-=12,n+=1),i=ot(r,n);return e.month=r,e.date=a,e},dt=(e,t,a)=>{e.year=t.year(),e.month=t.month();let n=t.date();for(e.date=n-Math.abs(a);e.date<1;){e.month-=1,e.month<0&&(e.month=11,e.year-=1);let t=ot(e.month,e.year);e.date+=t}return e},lt=["millisecond","second","minute","hour","date","month"];let mt={second:lt.slice(0,1),minute:lt.slice(0,2),quarterhour:lt.slice(0,2),hour:lt.slice(0,3),date:lt.slice(0,4),month:lt.slice(0,4),quarter:lt.slice(0,4),season:lt.slice(0,4),year:lt,decade:lt,century:lt};mt.week=mt.hour,mt.season=mt.date,mt.quarter=mt.date;const ht={year:!0,quarter:!0,season:!0,month:!0,week:!0,date:!0},ct={month:!0,quarter:!0,season:!0,year:!0};var ft=e=>{e.prototype.add=function(e,t){let a=this.clone();if(!t||0===e)return a;let n=this.clone();if("millisecond"===(t=T(t)))return a.epoch+=e,a;"fortnight"===t&&(e*=2,t="week"),B[t]?a.epoch+=B[t]*e:"week"===t||"weekend"===t?a.epoch+=B.day*(7*e):"quarter"===t||"season"===t?a.epoch+=B.month*(3*e):"quarterhour"===t&&(a.epoch+=15*B.minute*e);let r={};if(mt[t]&&mt[t].forEach(e=>{r[e]=n[e]()}),ht[t]){const e=n.timezone().current.offset-a.timezone().current.offset;a.epoch+=3600*e*1e3}if("month"===t&&(r.month=n.month()+e,r=st(r,n)),"week"===t){let t=n.date()+7*e;t<=28&&t>1&&(r.date=t)}if("weekend"===t&&"saturday"!==a.dayName())a=a.day("saturday",!0);else if("date"===t){if(e<0)r=dt(r,n,e);else{let t=n.date()+e;r=ut(r,n,t)}0!==e&&n.isSame(a,"day")&&(r.date=n.date()+e)}else if("quarter"===t){if(r.month=n.month()+3*e,r.year=n.year(),r.month<0){let e=Math.floor(r.month/12),t=r.month+12*Math.abs(e);r.month=t,r.year+=e}else if(r.month>=12){let e=Math.floor(r.month/12);r.month=r.month%12,r.year+=e}r.date=n.date()}else if("year"===t){let t=n.year()+e,r=a.year();if(rt){let t=Math.floor(e/4)||1;a.epoch+=B.day*t}}else"decade"===t?r.year=a.year()+10:"century"===t&&(r.year=a.year()+100);if(ct[t]){let e=F[r.month];r.date=n.date(),r.date>e&&(r.date=e)}return Object.keys(r).length>1&&W(a,r),a},e.prototype.subtract=function(e,t){return this.clone().add(-1*e,t)},e.prototype.minus=e.prototype.subtract,e.prototype.plus=e.prototype.add};const yt={millisecond:e=>e.epoch,second:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second()].join("-"),minute:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute()].join("-"),hour:e=>[e.year(),e.month(),e.date(),e.hour()].join("-"),day:e=>[e.year(),e.month(),e.date()].join("-"),week:e=>[e.year(),e.week()].join("-"),month:e=>[e.year(),e.month()].join("-"),quarter:e=>[e.year(),e.quarter()].join("-"),year:e=>e.year()};yt.date=yt.day;var pt=e=>{e.prototype.isSame=function(t,a,n=!0){let r=this;if(!a)return null;if("string"==typeof t&&"object"==typeof a){let e=t;t=a,a=e}return"string"!=typeof t&&"number"!=typeof t||(t=new e(t,this.timezone.name)),a=a.replace(/s$/,""),!0===n&&r.tz!==t.tz&&((t=t.clone()).tz=r.tz),yt[a]?yt[a](r)===yt[a](t):null}},gt=e=>{const t={isAfter:function(e){let t=z(e=E(e,this));return null===t?null:this.epoch>t},isBefore:function(e){let t=z(e=E(e,this));return null===t?null:this.epoch{e.prototype[a]=t[a]})},wt=e=>{const t={i18n:e=>{var t,a,n;M(e.days)&&(t=e.days,de=t.short||de,le=t.long||le),M(e.months)&&function(e){J=e.short||J,K=e.long||K}(e.months),n=e.useTitleCase,"[object Boolean]"===Object.prototype.toString.call(n)&&(a=e.useTitleCase,fe=a),M(e.ampm)&&function(e){Ze=e.am||Ze,Xe=e.pm||Xe}(e.ampm)}};Object.keys(t).forEach(a=>{e.prototype[a]=t[a]})};let bt=f;const kt=function(e,t,a={}){this.epoch=null,this.tz=A(t,bt),this.silent=void 0===a.silent||a.silent,this.british=a.dmy||a.british,this._weekStart=1,void 0!==a.weekStart&&(this._weekStart=a.weekStart),this._today={},void 0!==a.today&&(this._today=a.today),Object.defineProperty(this,"d",{get:function(){let e=l(this),t=(new Date(this.epoch).getTimezoneOffset()||0)+60*e;t=60*t*1e3;let a=this.epoch+t;return new Date(a)}}),Object.defineProperty(this,"timezones",{get:()=>bt,set:e=>(bt=e,e)});let n=ue(this,e);this.epoch=n.epoch};Object.keys(We).forEach(e=>{kt.prototype[e]=We[e]}),kt.prototype.clone=function(){return new kt(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart,today:this._today,parsers:this.parsers})},kt.prototype.toLocalDate=function(){return this.toNativeDate()},kt.prototype.toNativeDate=function(){return new Date(this.epoch)},it(kt),ft(kt),pt(kt),gt(kt),wt(kt);var Dt=kt,vt=(e,t)=>{let a=new Dt(null),n=new Dt(null);a=a.time(e),n=t?n.time(t):a.add(59,"minutes");let r=a.hour(),i=n.hour();return Object.keys(a.timezones).filter(e=>{if(-1===e.indexOf("/"))return!1;let t=new Dt(null,e),o=t.hour();return o>=r&&o<=i&&!(o===r&&t.minute()n.minute())})};const At=(e,t,a)=>new Dt(e,t,a),xt=function(e){let t=e._today||{};return Object.keys(t).forEach(a=>{e=e[a](t[a])}),e};At.now=(e,t)=>{let a=new Dt((new Date).getTime(),e,t);return a=xt(a),a},At.today=(e,t)=>{let a=new Dt((new Date).getTime(),e,t);return a=xt(a),a.startOf("day")},At.tomorrow=(e,t)=>{let a=new Dt((new Date).getTime(),e,t);return a=xt(a),a.add(1,"day").startOf("day")},At.yesterday=(e,t)=>{let a=new Dt((new Date).getTime(),e,t);return a=xt(a),a.subtract(1,"day").startOf("day")},At.extend=function(e={}){return Object.keys(e).forEach(t=>{Dt.prototype[t]=e[t]}),this},At.timezones=function(){return(new Dt).timezones},At.max=function(e,t){let a=new Dt(null,e,t);return a.epoch=864e13,a},At.min=function(e,t){let a=new Dt(null,e,t);return a.epoch=-864e13,a},At.whereIts=vt,At.version="7.1.4",At.plugin=At.extend;var Ot=At;const Mt={daybreak:"7:00am",breakfast:"8:00am",morning:"9:00am",noon:"12:00pm",midday:"12:00pm",afternoon:"2:00pm",lunchtime:"12:00pm",evening:"6:00pm",dinnertime:"6:00pm",night:"8:00pm",eod:"10:00pm",midnight:"12:00am",am:"9:00am",pm:"5:00pm","early day":"8:00am","late at night":"11:00pm"},_t={quarter:15,half:30},jt=function(e){let t=e.time("6:00am");return e.isBefore(t)?e.ampm("pm"):e};var $t=function(e,t){let a=e.match("(at|by|for|before|this|after)? #Time+");a=a.not("^(at|by|for|before|this|after)"),a=a.not("sharp"),a=a.not("on the dot");let n=Ot.now(t.timezone),r=n.clone(),i=a.not("in the").text("reduced");if(i=i.replace(/^@/,""),Mt.hasOwnProperty(i))return{result:Mt[i],m:a};let o=a.match("^#Cardinal oclock (am|pm)?");if(o.found&&(n=n.hour(o.text("reduced")),n=n.startOf("hour"),n.isValid()&&!n.isEqual(r))){let e=o.match("(am|pm)");return n=e.found?n.ampm(e.text("reduced")):jt(n),{result:n.time(),m:o}}if(o=a.match("(half|quarter|25|20|15|10|5) (past|after|to) #Cardinal"),o.found&&(n=function(e,t){let a=e.match("#Cardinal$"),n=e.not(a).match("(half|quarter|25|20|15|10|5)");a=a.text("reduced");let r=n.text("reduced");_t.hasOwnProperty(r)&&(r=_t[r]);let i=e.has("to");return t=(t=t.hour(a)).startOf("hour"),a<6&&(t=t.ampm("pm")),i?t.subtract(r,"minutes"):t.add(r,"minutes")}(o,n),n.isValid()&&!n.isEqual(r)))return n=jt(n),{result:n.time(),m:o};if(o=a.match("[(half|quarter|25|20|15|10|5)] (past|after)"),o.found){let e=o.groups("min").text("reduced"),a=Ot(t.today);if(_t.hasOwnProperty(e)&&(e=_t[e]),a=a.next("hour").startOf("hour").minute(e),a.isValid()&&!a.isEqual(r))return{result:a.time(),m:o}}if(o=a.match("[(half|quarter|25|20|15|10|5)] to"),o.found){let e=o.groups("min").text("reduced"),a=Ot(t.today);if(_t.hasOwnProperty(e)&&(e=_t[e]),a=a.next("hour").startOf("hour").minus(e,"minutes"),a.isValid()&&!a.isEqual(r))return{result:a.time(),m:o}}if(o=a.match("[